Python读取JSON分类数组后按ID访问数据的一致性问题问询
解决按ID访问分类名称的问题
嘿,我明白你遇到的问题了——你读取的JSON里categories是一个数组列表,直接用id字符串当键去访问肯定行不通,因为列表只能按索引(比如0、1)取值。咱们得先把这个数组转换成以id为键的字典,这样就能像你想要的那样用category_dict['1']['name']来获取名称啦!
具体实现步骤
- 正常读取JSON文件获取原始数据
- 将
categories数组转换为以id为键的字典(这里把id转成字符串,匹配你想要的['1']访问方式;如果想用数字id当键,去掉str()即可)
import json # 读取JSON文件 with open('file.json') as json_data: json_info = json.load(json_data) # 把categories数组转换为以id字符串为键的字典 category_dict = {str(item['id']): item for item in json_info['categories']} # 现在就能按你想要的方式访问啦 print(category_dict['1']['name']) # 输出: Bottle print(category_dict['2']['name']) # 输出: Car
为什么原来的代码不行?
原始的JSON结构里,json_info['categories']是一个列表,列表的访问方式是通过索引位置(比如json_info['categories'][0]对应id为1的Bottle),而不是通过id值。所以我们需要做一步转换,把列表里的每个元素用它的id作为键存到字典里,这样就能直接通过id快速查找对应的分类信息了。
内容的提问来源于stack exchange,提问作者Oblomov
相关产品推荐
相关产品推荐

