抱歉,我只是想将每条推文中的'id_str'存储到名为ids []的新列表中。 但得到以下错误:
追踪(最近一次通话): 文件“extract_tweet.py”,第17行,in 打印推文['id_str'] KeyError:'id_str'
我的代码是:
import json
import sys
if __name__ == '__main__':
tweets = []
for line in open (sys.argv[1]):
try:
tweets.append(json.loads(line))
except:
pass
ids = []
for tweet in tweets:
ids.append(tweet['id_str'])
答案 0 :(得分:2)
来自推文的json数据有时会缺少字段。试试这样的事情,
ids = []
for tweet in tweets:
if 'id_str' in tweet:
ids.append(tweet['id_str'])
或等效,
ids = [tweet['id_str'] for tweet in tweets if 'id_str' in tweet]
答案 1 :(得分:0)
import json
tweets = []
tweets.append(
json.loads('{"a": 1}')
)
tweet = tweets[0]
print(tweet)
print( tweet['id_str'] )
--output:--
{'a': 1}
Traceback (most recent call last):
File "1.py", line 9, in <module>
print( tweet['id_str'] )
KeyError: 'id_str'
和
my_dict = {u"id_str": 1}
print my_dict["id_str"]
--output:--
1