如何以可移植的方式使用Python映射JSON值
我有一个JSON对象,如下所示,是从文件加载的。我想为所有CityName值解析JSON对象如何以可移植的方式使用Python映射JSON值,python,json,mapping,Python,Json,Mapping,我有一个JSON对象,如下所示,是从文件加载的。我想为所有CityName值解析JSON对象 { "CityList": [ { "Continent": "USA", "CityName": "Chicago" }, { "Continent": "Russia", "CityName": "Moscow" },
{
"CityList": [
{
"Continent": "USA",
"CityName": "Chicago"
},
{
"Continent": "Russia",
"CityName": "Moscow"
},
{
"Continent": "Asia",
"CityName": "Beijing"
},
{
"Continent": "Australia",
"CityName": "Sydney"
}
]
}
我使用Python脚本通过FOR循环从JSON中提取CityName元素。出于其他原因,我想在下游使用“name”变量
name=Chicago
name=Moscow
name=Beijing
name=Sydney
到目前为止,我已经尝试了以下方法
with open('city_names.json','r') as read_file:
json_data = read_file.read()
data = json.loads(json_data)
for k,v in data.items():
name=v['CityName']
print(name)
在运行了很长一段时间以上的操作都没有成功之后,我一直得到这样一个错误:“TypeError:列表索引必须是整数,而不是整数。”
str”。我知道问题是什么,但不幸的是我不知道答案
修理非常感谢您的帮助。您的数据是
CityList
键下的目录列表,因此您应该首先迭代列表的子目录,然后输出CityName
键的值:
for d in data['CityList']:
print(d['CityName'])
要获取CityName,您可以循环查看
数据['CityList']
,因为它是一个列表:
for v in data['CityList']:
name=v['CityName']
print(name)
提示:您的字典
data
只有一个键,“CityList”,其值为[{'Continent':'USA','CityName':'Chicago',{'Continent':'rusia','CityName':'Moscow'},{'Continent':'Asia','CityName':'Beijing'},{'Continent':'Australia','CityName':'Sydney'}
。