我试图理解来自 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_data 字典中每个字典的值列表,但不是单个值,因为这种对字典对象的请求通常会发生这种情况? [1]: https://i.sstatic.net/V0NJlW9t.png [2]: https://i.sstatic.net/f5tpiVF6.png
在我看来,当你第一次读取数据并得到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'] 将接收一个类字典...