求助各位大佬,为什么我的python没有输出

图片说明
我用vscode,python是3.8.2,照着书上写的,之后我点击vscode右上角的运行,终端只能输出一串路径,我换了个编辑器,geany,点击运行也只是出现空的终端图片说明
。之后我新建了一个,随便写了个print,然后输出是正常的,请问大佬为什么我这个没有输出,我搜了很多都搜不到,非常感谢。我刚刚来这里,没有币,不能报答,望谅解。

import json

将数据加载到一个列表中

filename = 'population_data.json'
with open(filename) as f:
pop_data = json.load(f)

打印每个国家2010年的人口数量

for pop_dict in pop_data:
if pop_dict["Year"] == '2010':
country_name = pop_dict["Country Name"]
population = int(float(pop_dict["Value"]))
print(country_name + ": " + str(population))



2个回答

首先print看下 pop_data 是什么内容,json有没有读取正确
然后看其中有没有Year这一列
其中有没有2010的数据
再下面Country Name和Value有没有,最好Country Name这个不要空格。
仔细检查。

哈哈哈
我测试了一下,和你一样的思路,和你一样的结果
JSON文件读取的是一个对象,不是列表,所以不能像遍历列表那样遍历
{“key”:[列表]}
所以遍历的时候是:
for i in pop_data["key"]:

qq_48827061
透明色夏天 哈哈哈谢谢你的回答,不过问题已经解决了,应该是我下载的json中,那个2010没有引号,然后我的if没有触发导致的。你说的很好,但是我这里不是直接遍历列表里的东西,这个json文件里是存储了很多字典,也就是pop_data里存储了很多字典,然后遍历的时候是先遍历那些字典,再一个个的去找各个字典里某个键对应的值。
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问