Как преобразовать данные SQLAlchemy в формат JSON? - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над SQLAlchemy и хочу получить данные из базы данных и преобразовать их в формат JSON.

У меня есть код ниже:

db_string = "postgres://user:pwd@10.**.**.***:####/demo_db"
Base = declarative_base()
db = create_engine(db_string)  

record = db.execute("SELECT name, columndata, gridname, ownerid, issystem, ispublic, isactive FROM col.layout WHERE (ispublic=1 AND isactive=1) OR                                            (isactive=1 AND ispublic=1 AND ownerid=ownerid);")

for row in record:
    result.append(row)

print(result)

Данные поступают в следующем формате:

[('layout-1', {'theme': 'blue', 'sorting': 'price_down', 'filtering': ['Sub Strategye', 'PM Strategy']}, 'RealTimeGrid', 1, 0, 1, 1), ('layout-2', {'theme': 'orange', 'sorting': 'price_up', 'filtering': ['FX Rate', 'Start Price']}, 'RealBalancing Grid', 2, 0, 1, 1), ('layout-3', {'theme': 'red', 'sorting': 'mv_price', 'filtering': ['Sub Strategye', 'PM Strategy']}, 'RT', 3, 0, 1, 1)]

Но я сталкиваюсь с множеством проблем при преобразовании приведенного выше результата в формат JSON. Пожалуйста, предложите.

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Ваши данные - это в основном список кортежей.

как первый кортеж как

('layout-3',
 {'filtering': ['Sub Strategye', 'PM Strategy'],
  'sorting': 'mv_price',
  'theme': 'red'},
 'RT',
 3,
 0,
 1,
 1)

если вы хотите преобразовать данные целиком в формат json, вы можете использовать json module dumps function

import json
jsn_data = json.dumps(data)

Ваш список кортежей конвертируется в json

[["layout-1", {"theme": "blue", "sorting": "price_down", "filtering": ["Sub Strategye", "PM Strategy"]}, "RealTimeGrid", 1, 0, 1, 1], ["layout-2", {"theme": "orange", "sorting": "price_up", "filtering": ["FX Rate", "Start Price"]}, "RealBalancing Grid", 2, 0, 1, 1], ["layout-3", {"theme": "red", "sorting": "mv_price", "filtering": ["Sub Strategye", "PM Strategy"]}, "RT", 3, 0, 1, 1]]

но Если вам нужен json формат в качестве пары ключ-значение, сначала нужно преобразовать результат в словарь python, а затем использовать json.dumps(dictionary_Var)

0 голосов
/ 17 мая 2019

То, что вы хотите выполнить, называется «сериализацией».

Вы можете следовать ответу Судханшу Пателя, если вы просто хотите включить JSON в ответ.

Однако, если вы намереваетесь произвести болеесложное приложение, рассмотрите возможность использования библиотеки сериализации.Вы сможете вводить данные из запроса в базу данных, проверять, имеют ли входные данные правильный формат, и отправлять ответ в стандартизированном формате.

Проверьте следующие библиотеки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...