Форум сайта python.su
Доброй ночи друзья.
Возник следующий вопрос. Имеется словарь вида:
{“result”:100, “newarray”:, “ourstr”:“Moscow”, “dict”: {“field”:“params”, “coins”:2}}
Есть задача, хранить подобные структуры в поле PostgreSQL как массив.
Как преобразовать подобные массивы в строку PostgreSQL?
Простите за ликбез. Новичок в Python. Буду благодарен любым подсказкам.
Офлайн
>>> c=“”“{”result“:100, ”newarray":, “ourstr”:“Moscow”, “dict”: {“field”:“params”, “coins”:2}}“”“
>>> c
'{”result“:100, ”newarray":, “ourstr”:“Moscow”, “dict”: {“field”:“params”, “coins”:2}}'
>>> d=eval©
>>> d
{'ourstr': ‘Moscow’, ‘dict’: {'field': ‘params’, ‘coins’: 2}, ‘result’: 100, ‘newarray’: }
>>> s=“%s” % d
>>> s
"{'ourstr': ‘Moscow’, ‘dict’: {'field': ‘params’, ‘coins’: 2}, ‘result’: 100, ‘newarray’: }"
Офлайн
Возможно неверно написал. или не понял написанного.
В поле postgresql должна сохраняться строка массива postgresql , с ней возможно будут проводиться операции в запросах к базе.
и еще
есть вариант хранить массивы и структуры в виде строки json в базе. что лучше и быстрее? скажу, что при выборе строки, она будет постоянно разбираться и собираться при записи
Офлайн
pickle? Или я не понял вопроса?
Офлайн
Офлайн
Друзья по поводу json ясно.
вопрос был каков формат хранения, форма записи массивов в PostgreSQL. Скажем, есть у нас словарь, нам нужно его записать в поле PostgreSQL типа array . Собственно хотелось попробывать работу с массивами в PostgreSQL , выбора и сортировка массивов по ключам.
Офлайн
может просто сделать ещё одну таблицу…?
Офлайн
o7412369815963, потому что это не sqlite и не mysql – тут есть много чего очень удобного… Например, массивы, кастомные типы…
dr911, словарь в массив, это извращение.
Вообще для работы с типами постгри вполне можно использовать DB-API2 и чистый синтаксис самого постгри. Совершенно не понимаю проблематики. Главное, это правильно сформировать запрос – почитай документацию по постгри, там всё есть.
Офлайн