строит раму панд - PullRequest
       4

строит раму панд

0 голосов
/ 09 ноября 2019

мой код

response = requests.get(url, headers=headers)

print(response)
if response.status_code == 401:
    print(url)
else:
    bPL= json.loads(response.text)
    print(bPL)
    print(bPL['Columns']['Column'])
  #  print(bPL['Rows']['Row'])
    columns = [dct['ColTitle'] for dct in bPL['Columns']['Column']]
    print(columns)
    rows = [dct[0] for dct in bPL['Rows']['Row']['ColData']['value']]

    df = pd.DataFrame(bPL['Rows'], columns=columns)
    print(df)

это файл json, который я должен был иметь в качестве фрейма данных pandas:

{'Header': {'Time': '2019-11-03T06:59:23-08:00', 'ReportName': 'TrialBalance', 'DateMacro': 'this month-to-date', 'ReportBasis': 'Accrual', 'StartPeriod': '2019-11-01', 'EndPeriod': '2019-11-03', 'Currency': 'CAD', 'Option': [{'Name': 'NoReportData', 'Value': 'false'}]}, 'Columns': {'Column': [{'ColTitle': '', 'ColType': 'Account'}, {'ColTitle': 'Débit', 'ColType': 'Money'}, {'ColTitle': 'Crédit', 'ColType': 'Money'}]}, 'Rows': {'Row': [{'ColData': [{'value': '1050 Carte de credit', 'id': '109'}, {'value': ''}, {'value': '3484.79'}]}, {'ColData': [{'value': '1060 Banque nationale', 'id': '110'}, {'value': '1577.52'}, {'value': ''}]}, {'ColData': [{'value': '1199 dummyAccount (ne pas utiliser)', 'id': '216'}, {'value': '0.00'}, {'value': ''}]}, ....

Мне удалось идентифицировать столбцы с этим кодом:

columns = [dct['ColTitle'] for dct in bPL['Columns']['Column']]

и я получаю: ['', 'Débit', 'Crédit']

Но у меня есть проблема с добавлением строк

Я повторил это, но это не такwork:

title = [dct[0] for dct in bPL['Rows']['Row']['ColData']['value']]

error: TypeError: индексы списка должны быть целыми или кусочками, а не str

Я видел, что для каждой строки у меня есть 3 значения: первое с именем и идентификатором, второеодин для дебетового столбца трижды один для кредитного столбца

Я хотел бы кадр с (в качестве первой строки в качестве примера):

Имена столбцов: Имя, Идентификатор, Дебет, Кредит

Пример строки: «1050 Carte de credit», «109», «», «3484,79»

Спасибо за помощь

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