import json
#Load the data into a list.
filename = 'population_data.json'
with open(filename)as f:`enter code here`
pop_data = json.load(f)
enter code here
#Print the 2010 population data for each country.
for pop_dict in pop_data:`enter code here`
if pop_dict['Year'] == '2010':
country_name = pop_dict['Country Name']
population = int(float(pop_dict['Value']))
print(country_name + " : " + str(population))
我正试图从一个public_data.json文件中提取数据,但是每当我运行我的代码时,它都不会显示任何结果,并且没有收到任何错误,我已经将总体数据文件与代码,但我仍然有同样的问题,我在shell中没有得到任何数据结果。如果有人可以帮助我,我会很高兴。谢谢。
enter code here
import json
#Load the data into a list.
filename = 'population_data.json'
with open(filename)as f:`enter code here`
pop_data = json.load(f)
enter code here
#Print the 2010 population data for each country.
for pop_dict in pop_data:`enter code here`
if pop_dict['Year'] == '2010':
country_name = pop_dict['Country Name']
population = int(float(pop_dict['Value']))
print(country_name + " : " + str(population))
答案 0 :(得分:0)
我建议在python 调试器(pdb)中启动脚本。您可以通过以下方式启动脚本来启动它:
python3 -m pdb your_script.py
或通过导入pdb模块。将以下行添加到您的python文件中(例如,在import json
之后,或其他任意行):
import pdb; pdb.set_trace()
一旦加载,调试器将在第一条指令处停止并显示调试器promt (Pdb)
。依次输入next
并按ENTER
一行一行地执行,直到遇到有趣的一行为止。调试器始终打印 next 指令以及脚本路径和行。
调试器输出将添加到下面,之后的所有内容 (Pdb)
,您必须输入并使用ENTER
(Pdb) next
> /path/to/your_script.py(7)<module>()
-> pop_data = json.load(f)
(Pdb) next
> /path/to/your_script.py(11)<module>()
-> for pop_dict in pop_data:
现在让调试器打印变量的内容
(Pdb) p pop_data
{"Probably": "something", "you": "don't expect here"}
我怀疑for循环会产生0 pop_dict
s,因此循环主体永远不会执行,或者没有pop_dict
键Year
没有值2010
和{{ 1}}正文永远不会执行。
替代以经常键入下一个(==单步执行):在特定行(if
)上设置一个break
点,并执行your_script.py:11
直到断点被击中
continue
有关其他调试器命令,请参见pdb commands