gpt4 book ai didi

python - 使用 Python 将 JSON 转换为 CSV 问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:34 24 4
gpt4 key购买 nike

我正在尝试有选择地将 JSON 文件转换为 CSV。这意味着我想迭代 JSON。

编写 CSV 的代码如下所示:

f = csv.writer(open("test.csv", "wb+"))
f.writerow(["id", "text", "polarity"])
for x in final:
f.writerow([x["id"],
x["text"],
x["polarity"]])

遗憾的是,我收到以下错误:

TypeError: string indices must be integers

我已经知道问题出在哪里了。我在加载 JSON 后检查了它的类型。这是一个字典,所以应该没问题。

当我打印我的字典时:

print (final)

我得到:

{u'data': [{u'polarity': 2, u'text': u'How deep is your love - Micheal Buble Ft Kelly Rowland ?', u'meta': {u'language': u'en'}, u'id': u'1'}, {u'polarity': 2, u'text': u'RT @TrueTeenQuotes: #SongsThatNeverGetOld Nelly ft. Kelly Rowland - Dilemma', u'meta': {u'language': u'en'}, u'id': u'2'}, {u'polarity': 2, u'text': u'RT @GOforCARL: Dilemma - Nelly Feat. Kelly Rowland #Ohh #SongsThatNeverGetOld', u'meta': {u'language': u'en'}, u'id': u'3'}, {u'polarity': 2, u'text': u'#NP Kelly Rowland Grown Woman', u'meta': {u'language': u'en'}, u'id': u'4'}, {u'polarity': 2, u'text': u"My friend just said 'kelly rowland is gettin it good... Most of her songs are sexual'", u'meta': {u'language': u'en'}, u'id': u'5'}, {u'polarity': 2, u'text': u'No. Kelly Rowland is the Black Barbie, idc', u'meta': {u'language': u'en'}, u'id': u'6'}, {u'polarity': 2, u'text': u'Nelly - Gone ft. Kelly Rowland http://t.co/tXjhCS05l0', u'meta': {u'language': u'en'}, u'id': u'7'}, {u'polarity': 2, u'text': u'Kisses Down Low by Kelly Rowland killer?\u2018?\u2018?\u2018 #NellyVille', u'meta': {u'language': u'en'}, u'id': u'8'}]}

除了“极性”的值之外,每个项目似乎都是 Unicode 格式的。我现在有 3 个问题。 1. 所有项目是否都应该采用 unicode?如何更改字典中的格式?这能解决我的问题吗?

最佳答案

在 Python 中迭代字典会得到字典的键作为字符串 - 因此上面示例中的 x 将仅包含字符串 "data"

如果您想迭代与 final 字典的 u"data" 键关联的列表值中的字典,则必须用 Python 编写:

...
for x in final[u"data"]:
f.writerow([x["id"],
x["text"],
x["polarity"]])

关于python - 使用 Python 将 JSON 转换为 CSV 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17578639/

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