dr911
Март 31, 2010 00:45:08
Доброй ночи друзья.
Возник следующий вопрос. Имеется словарь вида:
{“result”:100, “newarray”:, “ourstr”:“Moscow”, “dict”: {“field”:“params”, “coins”:2}}
Есть задача, хранить подобные структуры в поле PostgreSQL как массив.
Как преобразовать подобные массивы в строку PostgreSQL?
Простите за ликбез. Новичок в Python. Буду благодарен любым подсказкам.
villager
Март 31, 2010 01:17:39
>>> 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’: }"
dr911
Март 31, 2010 01:27:09
Возможно неверно написал. или не понял написанного.
В поле postgresql должна сохраняться строка массива postgresql , с ней возможно будут проводиться операции в запросах к базе.
и еще
есть вариант хранить массивы и структуры в виде строки json в базе. что лучше и быстрее? скажу, что при выборе строки, она будет постоянно разбираться и собираться при записи
ZZZ
Апрель 1, 2010 11:43:22
pickle? Или я не понял вопроса?
poltergeist
Апрель 3, 2010 00:38:58
dr911
Апрель 3, 2010 10:37:26
Друзья по поводу json ясно.
вопрос был каков формат хранения, форма записи массивов в PostgreSQL. Скажем, есть у нас словарь, нам нужно его записать в поле PostgreSQL типа array . Собственно хотелось попробывать работу с массивами в PostgreSQL , выбора и сортировка массивов по ключам.
o7412369815963
Апрель 3, 2010 12:35:27
может просто сделать ещё одну таблицу…?
ZZZ
Апрель 3, 2010 12:46:07
o7412369815963, потому что это не sqlite и не mysql – тут есть много чего очень удобного… Например, массивы, кастомные типы…
dr911, словарь в массив, это извращение.
Вообще для работы с типами постгри вполне можно использовать DB-API2 и чистый синтаксис самого постгри. Совершенно не понимаю проблематики. Главное, это правильно сформировать запрос – почитай документацию по постгри, там всё есть.