处理JSON格式的文件-系列Error
Posted gunxiaoshi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理JSON格式的文件-系列Error相关的知识,希望对你有一定的参考价值。
title: 内置数据结构-文件处理
subtitle: 处理JSON格式的文件
date: 2018-12-14 10:17:28
---
JSON的Error汇总
本文档主要记录了处理JSON文件一系列Error等。
1. json.decoder.JSONDecodeError: Expecting value: line 27290 column 3 (char 1035661)
- 类型错误:JSON解码错误
- 排错思路:1. 最大的可能就是原来的大JSON文件格式出现错误,比如原JSON正确的格式为: "a":"1","b":"c":"1","d": , 你的JSON格式为: "a":"1","b":"c":"1","d": , 缺少"d":对应的value:
- 解决方法:修改,保证大JSON格式正确。
2. KeyError: ‘databaseEdition‘
- 类型错误:数据请求错误。
排错思路:这是我处理JSON文件时候遇到的一个错误,特别少见,没有get字段。
for attr in rdsattributes: rdsondemand_output[sku][attr] = data['products'][sku]["attributes"][attr]
解决方法:
for attr in rdsattributes: rdsondemand_output[sku][attr] = data['products'][sku]["attributes"].get(attr)
3. AttributeError: ‘dict‘ object has no attribute ‘value‘
- 类型错误:属性错误,dict对象没有对应的属性
排错思路:属性/方法用错
rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].value)[0]["priceDimensions"].value)[0]["unit"]
解决方法:注意,下面的方法仍然用错
rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].values)[0]["priceDimensions"].values)[0]["unit"]
4. TypeError: ‘builtin_function_or_method‘ object is not iterable
- 类型错误:类型错误,输入错误的对象导致没有办法迭代
排错思路:values()属性, ()里面代表的是一坨大value。
rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].values)[0]["priceDimensions"].values)[0]["unit"]
解决方法:
rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].values())[0]["priceDimensions"].values())[0]["unit"]
5. TypeError: string indices must be integers
- 类型错误:类型错误,字符串索引必须是整数
排错思路:
for sku in rdssku_l: rdsondemand_output[sku] = for attr in rdsattributes: rdsondemand_output[sku][attr] = data['products'][sku]['attributes'].get(attr) rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].values())[0]['priceDimensions'].values())[0]['unit'] rdsondemand_output[sku]['CNY'] = list(list(list(data['terms']['OnDemand'][sku].values())[0]['priceDimensions'].values())[0]['pricePerUnit'].values())[0]['CNY']
解决方法:
for sku in rdssku_l: rdsondemand_output[sku] = for attr in rdsattributes: rdsondemand_output[sku][attr] = data['products'][sku]['attributes'].get(attr) rdsondemand_output[sku]['unit'] = list(list(data['terms']['OnDemand'][sku].values())[0]['priceDimensions'].values())[0]['unit'] rdsondemand_output[sku]['CNY'] = list(list(data['terms']['OnDemand'][sku].values())[0]['priceDimensions'].values())[0]['pricePerUnit']['CNY']
以上是关于处理JSON格式的文件-系列Error的主要内容,如果未能解决你的问题,请参考以下文章
FastJson处理数据出现错误 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1(示例代