Как преобразовать файл ndjson в файл csv в Python?

#python #csv #file-conversion #ndjson

#python #csv #преобразование файлов #ndjson

Вопрос:

В настоящее время мой файл загружен следующим образом:

 import ndjson

with open('full_simplified_arm.ndjson') as f:
    data = ndjson.load(f)

  

Тем не менее, я хотел бы преобразовать этот файл в csv на Python и задавался вопросом, как это сделать? Спасибо

Ответ №1:

Вы могли бы сделать это с csv.DictWriter помощью .

Загружая данные ndjson.load , они сохраняются в этой форме.

 [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}, {'id': 3, 'name': 'Carol'}]
  

Вы могли бы взять ключи из первого элемента в списке в качестве имен полей таблицы.

 fields = data[0].keys()
  

Затем определите a csv.DictWriter для записи заголовка и строк.

 writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
for item in data:
    writer.writerow(item)
  

Полное решение:

 import csv
import ndjson

with open('./users.ndjson', 'r') as f:
    data = ndjson.load(f)

with open('./users.csv', 'w', newline='') as f:
    # I'm assuming that each item has the same keys
    fields = data[0].keys()
    writer = csv.DictWriter(f, fieldnames=fields)
    writer.writeheader()
    for item in data:
        writer.writerow(item)
  

Ввод

 {"id":1,"name":"Alice"}
{"id":2,"name":"Bob"}
{"id":3,"name":"Carol"}
  

Вывод

 id,name
1,Alice
2,Bob
3,Carol
  

Примечание: Образец данных был получен онлайн