首页 > 解决方案 > 如何在 Python 中将 ndjson 文件转换为 csv 文件?

问题描述

我目前的文件加载如下:

import ndjson

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

但是,我想将此文件转换为 Python 中的 csv,并且想知道如何执行此操作?谢谢

标签: pythoncsvfile-conversionndjson

解决方案


你可以用csv.DictWriter.

用 加载数据ndjson.load,以这种形式存储。

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

您可以将列表中第一项中的键作为表的字段名。

fields = data[0].keys()

然后定义一个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

注:样本数据来源于网络


推荐阅读