Неверно Json при использовании запросов get Flask - PullRequest
0 голосов
/ 06 апреля 2020

Мне нужно запросить базу данных PG через API, я использую пакет Flask requests:

 payload = {'key':'**', 'schema':'**', 'table':'testh','where_clause':'0', 'liste_fields':'*'}
r = requests.get('https://myapi/', params=payload, verify=False)   

Мне нужно получить все содержимое моего testh хранилища таблиц в JSON, но функция r.json() возвращает мне этот недействительный JSON:

{'id': {'0': '1', '1': '2', '2': '3', '3': '4'}, 'brand': {'0': 'apple', '1': 'microsoft', '2': 'google', '3': 'amazon'}}

Мне нужен JSON как: {0: {id: '2', brand: 'apple} , 1: {id: '2', торговая марка: 'microsoft}, ....}

Here is my table in Postgresql

1 Ответ

0 голосов
/ 06 апреля 2020

Вы можете использовать pandas для этого:

import pandas as pd
d = {'id': {'0': '1', '1': '2', '2': '3', '3': '4'}, 'brand': {'0': 'apple', '1': 'microsoft', '2': 'google', '3': 'amazon'}}
d = pd.DataFrame(d).to_dict(orient='index')

Вывод:

{'0': {'id': '1', 'brand': 'apple'},
 '1': {'id': '2', 'brand': 'microsoft'},
 '2': {'id': '3', 'brand': 'google'},
 '3': {'id': '4', 'brand': 'amazon'}}

Это только предположение, но, возможно, API также использовал pandas, и если Вы вызываете to_dict () без параметра, вы получаете именно тот результат, который вы описываете.

...