我对蟒蛇很陌生
我正在尝试使用汉斯火山api生成一个地图(https://volcanoes.usgs.gov/hans2/apiv2/volcanoApi/allWithNotice)
当以json格式打印我的URL时,我会看到许多这样格式的火山
[{'obsAbbr': 'avo', 'volcCd': 'ak6', 'volcName': 'Akutan', 'volcUrl': 'https://avo.alaska.edu/volcanoes/volcinfo.php?volcname=Akutan', 'vnum': '311320', 'imgUrl': 'https://avo.alaska.edu/images/dbimages/display/1108076476_60_3.jpg', 'threat': 'Very High Threat'},我想从中提取火山的名字。在做字典的时候,我只得到了一座火山。我想从这个json文件中获得所有火山的名字。
v = requests.get(url2.format()).json()
volcano = {
'name' : v[0]['volcName'],
}任何帮助都将不胜感激,干杯
发布于 2022-10-07 21:31:57
我不会把它当作字典列表保存,只要用字典就行:
volcano_threats = {x['volcName']: x['threat'] for x in v}输出:
{'Akutan': 'Very High Threat',
'Alaskan Volcanoes': None,
'Aniakchak': 'High Threat',
'Atka volcanic complex': 'High Threat',
...
}或者保存所有数据:
volcanos = {x['volcName']: x for x in v}发布于 2022-10-07 20:37:51
你可以这样做,
v = requests.get(url2.format()).json()
print([i['volcName'] for i in v])结果
['Akutan', 'Alaskan Volcanoes', 'Aniakchak', 'Atka volcanic complex', 'Augustine', 'Bogoslof', 'Cleveland', 'Davidof', 'Dutton', 'Edgecumbe', 'Fourpeaked', 'Frosty', 'Gareloi', 'Great Sitkin', 'Griggs', 'Iliamna', 'Kanaga', 'Kasatochi', 'Katmai', 'Korovin', 'Little Sitkin', 'Mageik', 'Makushin', 'Martin', 'Novarupta', 'Okmok', 'Pavlof', 'Redoubt', 'Sanford', 'Semisopochnoi', 'Shishaldin', 'Snowy Mountain', 'Spurr', 'Takawangha', 'Tanaga', 'Trident', 'Ugashik-Peulik', 'Ukinrek Maars', 'Veniaminof', 'Westdahl', 'Wrangell', 'Coso Volcanic Field', 'Lassen Volcanic Center', 'Long Valley Caldera', 'Cascade Range', 'Mount Hood', 'Mount St. Helens', 'Newberry', 'Three Sisters', 'Haleakala', 'Hualalai', "Kama'ehuakanaloa", 'Kilauea', 'Mauna Kea', 'Mauna Loa', 'Ofu-Olosega', "Ta'u Island", 'Tutuila Island', 'Agrigan', 'Ahyi Seamount', 'Anatahan', 'Pagan', 'Sarigan', 'Yellowstone']编辑
如果你有更多的数据要取,
[{'name':i['volcName'], 'threat':i['threat']} for i in v]
# result
[{'name': 'Akutan', 'threat': 'Very High Threat'},
{'name': 'Alaskan Volcanoes', 'threat': None},
{'name': 'Aniakchak', 'threat': 'High Threat'},
{'name': 'Atka volcanic complex', 'threat': 'High Threat'},
{'name': 'Augustine', 'threat': 'Very High Threat'},
....发布于 2022-10-07 21:18:30
您可以迭代您的数据,并生成一个使用remapped的列表,所有这些都可以很容易地使用列表理解语法。如下所示:
v = requests.get(url2.format()).json()
volcanoes = [dict(name=x['volcName'], threat=x['threat']) for x in v]
# [{'name': 'Akutan', 'threat': 'Very High Threat'},
# {'name': 'Alaskan Volcanoes', 'threat': None},
# {'name': 'Aniakchak', 'threat': 'High Threat'},
# {'name': 'Atka volcanic complex', 'threat': 'High Threat'}, ...
# ]https://stackoverflow.com/questions/73992306
复制相似问题