加载JSON并获取特定数据(Python)
我已经将一些tweet收集到一个JSON文件中,我需要用它对JSON中的某些数据进行统计。 在谷歌搜索了几个选项之后,没有一个能给我正确的解决方案 JSON如下所示:加载JSON并获取特定数据(Python),python,json,tweets,Python,Json,Tweets,我已经将一些tweet收集到一个JSON文件中,我需要用它对JSON中的某些数据进行统计。 在谷歌搜索了几个选项之后,没有一个能给我正确的解决方案 JSON如下所示: {"contributors": null, "truncated": false, "text": .... } 并应用此代码尝试加载它: import json f = open("user_timeline_Audi.jsonl",'r') data = f.read() print(data) bla = js
{"contributors": null, "truncated": false, "text": .... }
并应用此代码尝试加载它:
import json
f = open("user_timeline_Audi.jsonl",'r')
data = f.read()
print(data)
bla = json.loads(data)
基本上,json.loads()
给了我下一个错误:
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 2698)
最终的目标是,我需要从几个JSON文件中获得追随者的数量和喜欢的数量。希望有人能帮忙
编辑:
根据Alex Hall的回答,我现在的代码是:
import json
with open("user_timeline_BMW.jsonl",'r') as f:
for line in f:
obj = json.loads(line)
bla = ["followers_count"]
print(bla)
这只是输出一个列表,而不是后面的值:
....
['followers_count']
['followers_count']
....
希望有人对此步骤提出建议 您正在处理JSON行,其中每行包含一个JSON对象。你应该做:
for line in f:
obj = json.loads(line)
然后对每个对象执行您想要的操作。您正在处理JSON行,其中每行包含一个JSON对象。您应该:
for line in f:
obj = json.loads(line)
然后对每个对象执行您想要的操作。我认为应该是
bla=obj[“followers\u count”]
我认为应该是bla=obj[“followers\u count”]
如果没有看到json文件,很难说,但看起来您正在尝试加载一个包含多个词典的文件?看一看,;这可能就是你想要的。谢谢你的回复,但我在那里找不到解决方案。请查看@alex reply。这可能是您的问题吗?这是因为json.loads()错误!现在我需要弄清楚如何从这些行中获取值。很难说没有看到json文件,但看起来您正在尝试加载一个包含多个字典的文件?看一看,;这可能就是你想要的。谢谢你的回复,但我在那里找不到解决方案。请查看@alex reply。这可能是您的问题吗?这是因为json.loads()错误!现在我需要弄清楚如何从这些行中获取值。感谢您的回复,这对我有了进一步的帮助,现在继续讨论如何从这些行中获取值。感谢您的回复,这对我有了进一步的帮助,现在一直在讨论如何从行中获取值。这给了我一个错误:KeyError:“followers\u count”你可以通过执行print(obj.keys())
打印出dict中的所有键,并确保你需要的键确实存在吗?当我打印(obj)时,followers\u count存在。但是对于您提到的打印(obj.keys()),似乎不存在followers\u count
可能是第二级密钥?在另一个里面?如果您发布了print(obj.keys())
的输出,那么给出正确答案会容易得多,否则只是猜测。对不起,这是其中一行的输出:dict\u keys([‘贡献者’、‘截断’、‘文本’、‘is quote_status’、‘in_reply_to_status_id’、‘id’、‘favorite_count’、‘source’、‘retweeted’、‘coordinates’、‘entities’、‘in_reply_to_screen_name’、‘in_reply_to_user_id’、‘in_reply_count’、‘id’、‘id_str’、‘favorited_status’、‘user’、‘用户’、‘geo’、‘in_reply_to_user_“,”在“回复”给我的“状态”\u id\u str“,”place“,”extended\u entities“])中,这给了我一个错误:KeyError:“followers\u count”你能通过执行print(obj.keys())
打印出dict中的所有键并确保你需要的键确实存在吗?当我打印(obj)时,followers\u count是存在的。但是你提到的打印(obj.keys()),似乎followers\u count
可能是第二级密钥?在另一个密钥中?如果发布print(obj.keys())
的输出,则给出正确答案会容易得多,否则只是猜测。抱歉,这是其中一行的输出:dict\u密钥([‘贡献者’、‘截断’、‘文本’、‘is quote_status’、‘in_reply_to_status_id’、‘id’、‘favorite_count’、‘source’、‘retweeted’、‘coordinates’、‘entities’、‘in_reply_to_screen_name’、‘in_reply_to_user_id’、‘in_reply_count’、‘id’、‘id_str’、‘favorited_status’、‘user’、‘用户’、‘geo’、‘in_reply_to_user_“,”在“回复到”状态“id”str“,”位置“,”扩展实体“])