gpt4 book ai didi

python - 如何将数据从嵌套的 JSON 文件导入到 CSV?

转载 作者:行者123 更新时间:2023-12-04 08:56:49 25 4
gpt4 key购买 nike

我有一个嵌套的 json 文件,我想使用 Python 将其中的一些内容写入 csv 文件。我已经设法选择了我想要的数据,但我不明白如何让 Python 从所有索引中写入数据。换句话说,我一次只能从一个索引写入数据,我不明白如何选择所有索引。我尝试使用切片,但它给了我 TypeError (列表索引必须是整数或切片等)。你可以帮帮我吗?谢谢!
这是到目前为止的代码(它可以工作,但它只写了 1 行,而我有 87 行):

import json
import csv


json_file = open("unique_json.json", "r", encoding="utf-8")
csv_file = open("csv_format2.csv", "w", encoding="utf-8")

data = json.load(json_file)
write = csv.writer(csv_file)


contents = [[data[0]["node"]["display_url"]],
[data[0]["node"]["edge_liked_by"]["count"]],
[data[0]["node"]["edge_media_to_comment"]["count"]],
[data[0]["node"]["taken_at_timestamp"]]]

headers = ["url", "likes", "comments", "timestamp"]

write.writerow(headers)

for i in contents:
for j in i:
print(j, end=",", file=csv_file)

json_file.close()
csv_file.close()

最佳答案

几件事:

  • 打开文件然后关闭它们的问题是,如果发生异常,您不会关闭它们。为了防止这种情况,您可以使用 with退出文件时将处理关闭文件的语句,即使有异常也是如此。
  • 您创建了一个 writer,但随后自己解析了 CSV,而没有使用 writer。我也给它起了个名字writer而不是 write .
  • 您想使用 for循环 data 中的每个项目.
  • 我还避免创建一个我只会使用一次的变量。
  • 每行中的每个项目都有一组额外的方括号( [] ),这就是为什么您有第二个 for在里面循环。

  • import json
    import csv


    with open("unique_json.json", "r", encoding="utf-8") as json_file:
    data = json.load(json_file)

    with open("csv_format2.csv", "w", encoding="utf-8") as csv_file
    writer = csv.writer(csv_file)

    writer.writerow(["url", "likes", "comments", "timestamp"])

    for row in data:
    writer.writerow([
    row["node"]["display_url"],
    row["node"]["edge_liked_by"]["count"],
    row["node"]["edge_media_to_comment"]["count"],
    row["node"]["taken_at_timestamp"],
    ])

    关于python - 如何将数据从嵌套的 JSON 文件导入到 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63776196/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com