繁体   English   中英

在python中访问字典元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM