如何在python中循环使用字典并以JSON格式保存结果-无效格式
我在Python中循环遍历一个列表和一个字典,将数据存储在另一个字典中,并使用json.dump将数据写入json文件。我的JSON输出有点差,有一些额外的大括号和缺少的注释。这是我的循环:如何在python中循环使用字典并以JSON格式保存结果-无效格式,python,json,dictionary,Python,Json,Dictionary,我在Python中循环遍历一个列表和一个字典,将数据存储在另一个字典中,并使用json.dump将数据写入json文件。我的JSON输出有点差,有一些额外的大括号和缺少的注释。这是我的循环: for zip_code in zip_codes: for key, code in census_codes.iteritems(): stats[key] = c.acs.zipcode(('NAME', code), zip_code)[0][code] zip_stats =
for zip_code in zip_codes:
for key, code in census_codes.iteritems():
stats[key] = c.acs.zipcode(('NAME', code), zip_code)[0][code]
zip_stats = {}
zip_stats[zip_code] = stats
json.dump(zip_stats, ofile, indent=4)
以下是输出:
{
"10001": {
"total_population": "21097",
"widowed": "580",
"now_married": "4595",
"divorced": "4595",
"housing_units": "756",
"some_college": "2404",
"seperated": "346",
"hs_graduate": "1359",
"graduate": "4305",
"total_females": "11024",
"total_males": "10073",
"bachelors": "5705",
"average_age": "34.6",
"never_married": "11964"
}
}{
"10012": {
"total_population": "28982",
"widowed": "1538",
"now_married": "14932",
"divorced": "14932",
"housing_units": "799",
"some_college": "2574",
"seperated": "136",
"hs_graduate": "2622",
"graduate": "6510",
"total_females": "14668",
"total_males": "14314",
"bachelors": "7275",
"average_age": "42.8",
"never_married": "4743"
}
}
为什么json.dumps()没有将输出格式化为有效的json 试试看:
zip_stats = {}
for zip_code in zip_codes:
stats = {}
for key, code in census_codes.iteritems():
stats[key] = c.acs.zipcode(('NAME', code), zip_code)[0][code]
zip_stats[zip_code] = stats
json.dump(zip_stats, ofile, indent=4)
您的代码为每个
zip\u code
创建了一个新的zip\u stats
字典,并将每个字典作为一个单独的JSON
字符串写入。Mine只创建一次字典,添加两个stats字典,并且只执行一次dump
。它创建有效的JSON,但是您只需连接不同部分的输出。为什么不创建一个大字典并在最后转储它呢?@BrenBarn jsonlint说它是无效的-看起来有一些额外的大括号和缺少逗号…而且,zip_stats是用来收集所有数据的大字典。是的,这很有效!问题是字典是在哪里创建的。非常感谢。