#python #pandas
#python #pandas
Вопрос:
У меня есть большой текстовый файл, содержащий построчные словари в кодировке JSON.
{"a": 10, "b": 11, "c": 12, "d": 13, "e": 14, "f": 15, "g": 16, "h": 17, "i": 18, "j": 19}
{"a": 20, "b": 21, "c": 22, "d": 23, "e": 24, "f": 25, "g": 26, "h": 27, "i": 28, "j": 29}
...
Я использую Pandas, потому что это позволяет мне легко переименовывать и переиндексировать ключи словаря.
with open("my_dictionaries.txt") as f:
my_dicts = [json.loads(line.strip()) for line in f]
df = pd.Dataframe(my_dicts)
df.rename(columns= ...)
df.reindex(columns= ...)
Теперь я хочу записать измененные словари обратно в текстовый файл, построчно, как в исходном примере. Я не хочу использовать pd.to_csv()
, потому что мои данные имеют некоторые особенности, которые затрудняют использование CSV. Я экспериментировал с методами pd.to_dict()
and pd.to_json()
, но немного застрял.
Есть предложения?
Ответ №1:
Вы можете использовать это:
import json
with open('output.txt', 'w') as f:
for row in df.to_dict('records'):
f.write(json.dumps(row) 'n')
или:
import json
with open('output.txt', 'w') as f:
f.writelines([(json.dumps(r) 'n') for r in df.to_dict('records')])