我已经从我试图使用python解析的Twitter Streaming API中获得了一些数据。在解析ALL记录中的对象时,我在大部分时间内成功完成了这项工作。但是,在尝试解析不在每个记录中的对象时,例如['coordinates']
或['entities']['hashtags']
,我遇到了错误。
import json
import sys
def main():
for line in sys.stdin:
line = line.strip()
data = ''
try:
data = json.loads(line)
except ValueError as detail:
continue
if not (isinstance(data, dict)):
## not a dictionary, skip
pass
elif 'delete' in data:
## a delete element, skip for now.
pass
elif 'user' not in data:
## bizarre userless edge case
pass
else:
print "\t".join([
data['created_at'],
data['user']['screen_name'],
data['user']['id_str'],
data['user']['lang'],
data['text'],
data['source']
]).encode('utf-8')
if __name__ == '__main__':
main()
答案 0 :(得分:2)
您可以使用data['coordinates']
,而不是使用data.get('coordinates')
。
如果密钥不在字典中,则使用dict.get(key)
将返回None
,而不是提出KeyError
。