gpt4 book ai didi

python - Key 存在时出现 KeyError

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:09 25 4
gpt4 key购买 nike

使用 python 和 twitter api 获取推文对象。

我有一个包含推文的文件(tweetfile = 我计算机上的一个 .txt 文件),我正在尝试遍历对象以获取文本。我用 tweetObj.keys() 检查了 twitter 对象以查看键和“文本”;但是,当我尝试使用 tweetObj['text'] 获取单个文本时,我得到了 KeyError: 'text'

代码:

for line in tweetfile:
tweetObj = json.loads(line)
keys = tweetObj.keys()
print keys
tweet = tweetObj['text']
print tweet

下面是输出:

[u'contributors', u'truncated', u'text', u'in_reply_to_status_id', u'id', u'favorite_count', u'source', u'retweeted', u'coordinates', u'entities', u'in_reply_to_screen_name', u'id_str', u'retweet_count', u'in_reply_to_user_id', u'favorited', u'user', u'geo', u'in_reply_to_user_id_str', u'possibly_sensitive', u'lang', u'created_at', u'filter_level', u'in_reply_to_status_id_str', u'place']
@awe5sauce my dad was like "so u wanna be in a relationship with a 'big dumb idiot'" nd i was like yah shes the bae u feel lmao
[u'delete']
Traceback (most recent call last):
File "C:\apps\droid\a1\tweets.py", line 34, in <module>
main()
File "C:\apps\droid\a1\tweets.py", line 28, in main
tweet = tweetObj['text']
KeyError: 'text'

我不确定如何处理,因为它看起来像是打印了一条推文。问题是为什么这种情况会发生在键存在的地方并且似乎返回一个值但不是针对所有实例,我如何将其更正为我可以访问具有该键的所有行的值的位置?

最佳答案

在循环中创建了 2 个字典,每行一个。第一个有 text 而第二个只有一个 'delete' 键。它没有 'text' 键。因此出现错误消息。

将其更改为:

for line in tweetfile:
tweetObj = json.loads(line)
keys = tweetObj.keys()
print keys
if 'text' in tweetObj:
print tweetObj['text']
else:
print 'This does not have a text entry'

如你所知,如果你只对包含 text 的行感兴趣,你可能想使用

[ json.loads(l)['text'] for l in tweetfile if 'text' in json.loads(l) ]

'\n'.join([ json.loads(l)['text'] for l in tweetfile if 'text' in json.loads(l) ])

甚至更好

[ json.loads(l).get('text') for l in tweetfile]

关于python - Key 存在时出现 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24816114/

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