Python解析嵌套JSON时出现TypeError错误的问题排查求助
解决JSON解析中的
TypeError: string indices must be integers问题 你这里的问题出在对pickup_from的处理逻辑上——看你的JSON结构,pickup_from是一个单个字典对象,而不是列表。当你用for store in sale['pickup_from']去遍历它时,Python默认会遍历字典的键名(也就是"location_id"、"city"、"state"这些字符串),所以循环里的store其实是一个个字符串,这时候你尝试用store['location_id']去取值,就会触发TypeError,因为字符串只能用整数索引,不能用字符串索引。
修正后的代码很简单,直接跳过不必要的循环,直接访问pickup_from字典里的对应键值就可以了:
for sale in file_json['sales']: print(sale['sale_id']) print(sale['sale_date']) # 直接从pickup_from字典中取值,无需遍历 print(sale['pickup_from']['location_id']) print(sale['pickup_from']['city'])
如果未来你的业务场景中,pickup_from可能变成包含多个字典的列表(比如一个订单对应多个取货点),那时候才需要用循环遍历,但根据你当前提供的JSON结构,它是单个字典,直接访问就完全满足需求了。
内容的提问来源于stack exchange,提问作者Mariusz Szymoniak
相关产品推荐
相关产品推荐

