Проблема с преобразованием dataframe в json.Python

Программы на Python
Ответить
Anonymous
 Проблема с преобразованием dataframe в json.

Сообщение Anonymous »


У меня есть следующий кадр данных:

30 июня 2023 г. 30 июня 2022 г. 30 июня 2021 г. 30 июня 2020 г. Количество обыкновенных акций 7432000000,0 7464000000,0 7519000000,0 7571000000,0 Выпущенные акции 7432000000,0 7464000000,0 7519000000,0 7571000000,0 Чистый долг 12533000000,0 35850000000,0 43922000000,0 49751000000,0 Общий долг 59965000000,0 61270000000,0 67775000000,0 70998000000,0 Материальная балансовая стоимость 128971000000,0 87720000000,0 84477000000,0 67915000000,0 ... ... ... ... ... Денежные эквиваленты Денежные эквиваленты и краткосрочные инвестиции 111262000000,0 104757000000,0 130334000000,0 136527000000,0 Прочие краткосрочные инвестиции 76558000000,0 90826000000,0 116110000000,0 122951000000,0 Денежные средства и их эквиваленты 34704000000,0 13931000000,0 14224000000,0 13576000000,0 Денежные эквиваленты 26226000000,0 5673000000,0 6952000000,0 NaN Денежные средства Финансовые 8478000000.0 8258000000.0 7272000000.0 NaN [73 строки x 4 столбца] И я пытаюсь преобразовать его в json в следующем формате:

{ "2023-06-30": { «Номер обыкновенных акций»: «7432000000.0», ... }, "2022-06-30": { «Номер обыкновенных акций»: «7464000000.0», ... }, "2021-06-30": { «Номер обыкновенных акций»: «7519000000.0», ... }, "2020-06-30": { «Номер обыкновенных акций»: «7571000000.0», ... } } Однако мои попытки преобразовать его были разными: от неудачных до худших, поэтому я понятия не имею, что делаю.

Мои попытки приводят либо к очень нежелательному формату JSON, либо к ошибке типа в временных метках:

Например:

out = json.dumps({c: dict(zip(balance.index, Balance[c])) для c в Balance.columns}, отступ = 4) распечатать) Результаты:
Traceback (самый последний вызов — последний): Файл «/usr/lib/python3.8/runpy.py», строка 194, в _run_module_as_main вернуть _run_code(код, main_globals, None, Файл «/usr/lib/python3.8/runpy.py», строка 87, в _run_code exec (код, run_globals) Файл «/home/jesse_b/tools/stonk-db/stonkdb/__main__.py», строка 39, в основной() Файл "/home/jesse_b/tools/stonk-db/stonkdb/__main__.py", строка 32, в основном файле. out = json.dumps({c: dict(zip(balance.index, Balance[c])) для c в Balance.columns}, отступ = 4) Файл "/usr/lib/python3.8/json/__init__.py", строка 234, в дампе вернуть cls( Файл "/usr/lib/python3.8/json/encoder.py", строка 201, в кодировке куски = список(куски) Файл «/usr/lib/python3.8/json/encoder.py», строка 431, в _iterencode выход из _iterencode_dict(o, _current_indent_level) Файл «/usr/lib/python3.8/json/encoder.py», строка 376, в _iterencode_dict поднять TypeError(f'keys должно быть str, int, float, bool или None, ' TypeError: ключи должны быть str, int, float, bool или None, а не Timestamp.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»