Python嵌套字典访问累加人口值,要求使用json模块该如何实现?
实现代码
import json # 源嵌套字典数据 js = {"data": [ {'state': 'Florida', 'shortname': 'FL', 'info': {'governor': 'Rick Scott'}, 'counties': [{'name': 'Dade', 'population': '12345'}, {'name': 'Broward', 'population': '40000'}, {'name': 'Palm Beach', 'population': '60000'}]}, {'state': 'Ohio', 'shortname': 'OH', 'info': {'governor': 'John Kasich'}, 'counties': [{'name': 'Summit', 'population': '1234'}, {'name': 'Cuyahoga', 'population': '1337'}]}] } # 按要求使用json模块处理数据:如果源数据是JSON字符串可直接用json.loads # 此处为适配Python字典输入,先序列化再反序列化,满足json模块使用要求 json_str = json.dumps(js) processed_data = json.loads(json_str) # 遍历计算每个州的总人口 for state_item in processed_data['data']: total = 0 # 遍历当前州所有县累加人口,无需手动指定索引适配任意数量的县 for county in state_item['counties']: total += int(county['population']) print(f"{state_item['state']} {total}")
说明
- 代码完全遵循
json模块使用要求,如果你原始输入就是JSON格式字符串,可直接调用json.loads处理,不需要json.dumps步骤。 - 人口累加逻辑通过遍历
counties列表实现,无需手动按索引取字段,可自动适配任意数量的县级数据。 - 注意原始数据中
population字段为字符串类型,累加前需要转换为整数,否则会出现字符串拼接的错误。 - 注:你给出的预期输出中Florida人口22345和原始数据累加结果(12345+40000+60000=112345)不符,属于原始数据输入笔误,代码逻辑无问题。
内容的提问来源于stack exchange,提问作者learningbtw
相关产品推荐
相关产品推荐

