[英]Accessing dictionary elements in python
我处理一些Twitter数据,通过监视Twitter流获得数据,然后将结果保存在* .txt文件中
我正在尝试使用python处理该txt文件,因为我使用json.loads()指令,并在其中保存了Twitter流结果的文件中的每一行,因此我将每一行文件都作为json对象。
for line in twitter_file
data = json.loads(line)
json对象(一个文件行对应一个json对象)被加载到名为“ data”的变量中
一切都在这里工作,当我尝试访问“数据” json对象中的元素时,我可以做到这一点,例如,如果可以看到place元素,则可以使用data [“ place”]来做到这一点,所以我得到了这个:
"place":{
"id":"00a961d91f76dde8",
"url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/00a961d91f76dde8.json",
"place_type":"city",
"name":"Capital - Corrientes",
"full_name":"Capital - Corrientes",
"country_code":"AR",
"country":"Argentina",
"contained_within":[]
}
我可以访问“ place”元素,如果我执行print data [“ place”],我可以看到上面显示的文本。
当我尝试访问位置字典中的特定键时,就会出现问题,
我试图用这种方式
data["place"]["place_type"]
我正在等待获取“城市”值作为结果,但是我做不到,出现以下错误: TypeError: "NoneType" object has no attribute '__getitem__'
我还尝试了其他方法来显示具有以下内容的键值对:
for key,value in data["data"].items()
print key
但我没有得到结果
我也尝试过
print data["place"].keys()[0]
要打印第一个元素,但是它也不起作用。 我收到以下错误消息: AttributeError: 'NoneType' object has no attribute 'keys'
似乎我的data [“ place”]并没有被Python视为字典,这就是我的猜测,但是我不确定,我在Python上还很陌生,所以任何评论对我都非常有帮助。
您正在遍历文件并将每一行作为JSON加载。 这些JSON对象中的一些对象已将place
设置为字典, 其他对象place
其设置为None
。
每当您加载的行中的place
键设置为None
,都会得到AttributeError
异常。
您需要先对此进行测试:
place = data['place']
if place is not None:
print place['place_type']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.