Как я могу извлечь определенные объекты, транспонировать и объединить несколько, сложных заложенных файлов JSON в CSV с Python

Программы на Python
Anonymous
 Как я могу извлечь определенные объекты, транспонировать и объединить несколько, сложных заложенных файлов JSON в CSV с

Сообщение Anonymous »

Я знаю о нескольких сообщениях, которые охватывают эту тему, я заранее прошу прощения. Я читал и пробовал несколько раз.https://data.sec.gov/api/xbrl/companyfa ... 20193.json
https://data.sec.gov/api/xbrl/companyfa ... 22010.json
https://data.sec.gov/api/xbrl/companyfa ... 22606.json
< /code>
Вот одна из нескольких попыток, которые я попробовал: < /p>
import pandas as pd
import os
import glob
import json

OUTPUT_PATH = "../output/concepts/csv/"
fildir = '../resources/companyfacts/'
fils = os.path.join(fildir, '*.json')
filist = glob.glob(fils)

for fils in filist:
i = open(fils, "r")
sec_data = json.loads(i.read())
try:
for item in sec_data["facts"]["dei"]:
i.close()
except:
continue
try:
for item in sec_data["facts"]["us-gaap"]:
i.close()
except:
continue
dfs = [pd.read_json(fils) for sec_data in filist]
data = {"concepts": {}}
for item in sec_data["facts"]["dei"]:
if f"{item}" not in data:
data[f"{item}"] = {}
data[f"{item}"] = item
for item in sec_data["facts"]["us-gaap"]:
if f"{item}" not in data:
data[f"{item}"] = {}
data[f"{item}"] = item
df = pd.concat(dfs, ignore_index=True)
df = pd.DataFrame(data).transpose()
df.to_csv(OUTPUT_PATH + "CONCEPTS.csv")
< /code>
Результаты вывода: < /p>
concepts
EntityCommonStockSharesOutstanding
EntityPublicFloat
AccruedLiabilitiesCurrent
AdditionalPaidInCapital
CommonStockParOrStatedValuePerShare
CommonStockSharesAuthorized
......
......
......etc
< /code>
Что я хочу:
Во -первых, я хочу, чтобы сценарий пропустил и обработал следующий файл в списке, для любого файла, который не соответствует ключам JSON, он ищет для Полем (Любые проблемы, которые возникают в обработке файла).
Некоторые файлы пусты, а в некоторых файлах нет объектов «US-GAAP» или «dei» в ключе фактов. Есть несколько тысяч файлов. Одна ошибка, которая возникает: < /p>
for item in sec_data["facts"]["us-gaap"]:
~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'us-gaap'

< /code>
Тогда я хочу, чтобы мой файл CSV выглядел так: < /p>
CIK0000320193-concepts: CIK0001722010-concepts: CIK0001722606-concepts:
concpet list #1 here concept list #2 here concept list #3 here
< /code>
Пожалуйста, простите меня, я не самый лучший с кодом, но у меня все хорошо с шаблонами, деталями и решением проблем. Самое близкое, что я получил при проверке руководств и других вопросов стека, - это вывод, который обрабатывает только один из нескольких файлов в моей папке.

Подробнее здесь: https://stackoverflow.com/questions/793 ... omplex-nes

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