【发布时间】:2020-12-25 19:03:27
【问题描述】:
我有一个嵌套的 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()
【问题讨论】:
-
如果我理解正确的话,您拥有的每一行内容都是一个列表,然后包含在您命名为“内容”的列表中。那么你不能这样做:
for row in contents: write.writerow(row)吗?让我知道这是否没有意义。 :) -
@AlexandrosGouvatsos:谢谢!我刚刚尝试过(替换我的 for 循环),但它只是将内容从一个索引打印到多行。仍然存在同样的问题:如何从所有其他索引中获取值? (共 87 个)。我的目标是让 csv 每个索引都有一行,并且每个索引在每个指定的标题下都有一个值。