如何在Python中将ndjson文件转换为csv文件?

2024-05-15 15:22:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前已按如下方式加载我的文件:

import ndjson

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

然而,我想将这个文件转换成Python中的csv,我想知道如何做到这一点?谢谢


Tags: 文件csvimportdataaswith方式load
1条回答
网友
1楼 · 发布于 2024-05-15 15:22:10

你可以用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

注意:样本数据是online检索到的

相关问题 更多 >