来自 JSON 文件的字典

问题描述 投票:0回答:1

我试图理解来自 json 文件(不是原始 GeoJSON)的数据的结构。

数据来源为(https://earthquake.usgs.gov/earthquakes/feed/v1.0/geojson.php) 上传文件后我看到的是这样的 [VS Code 终端中 json 文件内容的快照][1]

阅读文件后,我检查其类型

    filename = '1.0_month.json'
    with open (filename)as f:
        all_eq_data = json.load(f)
    print ( type(all_eq_data))

它返回类<'dict'>

vs 代码将 all_eq_data 显示为以逗号分隔的字典 {} 的结果: {smth},{smth},{...},..... 终端中 all_eq_data 的快照

所以,它看起来不像典型的字典结构{key:value},它类似于字典列表:{key:value},{key:value}......

此外,如果我问的话

    all_eq_data.keys())

IDE 返回按键列表

dict_keys(['type', 'metadata', 'features', 'bbox']) 是 all_eq_data 组成的多个字典的键。
然后我就放了

    all_eq_dicts = all_eq_data\['features'\]

并接收一类字典,其中条目是来自 all_eq_data 中所有字典的“feature”键的值。

您能否解释一下这个json文件的结构(为什么它被认为是一个类,而其结构中没有键值对?另外,为什么当询问 all_eq_dicts = all_eq_data['features']

我收到了 all_eq_data 字典中每个字典的值列表,但不是单个值,因为这种对字典对象的请求通常会发生这种情况? [1]: https://i.sstatic.net/V0NJlW9t.png [2]: https://i.sstatic.net/f5tpiVF6.png

python json dictionary structure
1个回答
0
投票

在我看来,当你第一次读取数据并得到all_eq_data时,它是所有数据的字典,具有'type','metadata','features','bbox'等键。它确实有这个字典中的键值对。这个结构中的键值对就像('type',一个字符串),('metadata',一个字典),('bbox',一个列表),('features',一个列表)...... 所以键的值不仅可以是数字,还可以是字符串、列表或字典。

以键“features”为例:当使用all_eq_data['features']获取all_eq_dicts时,all_eq_dicts实际上是键“features”的值,它是一个列表。

您还可以尝试其他一些键来了解这一点。例如,all_eq_data['type'] 将接收一个类字符串,all_eq_data['metadata'] 将接收一个类字典...

© www.soinside.com 2019 - 2024. All rights reserved.