【python】json解析:invalid literal for int() with base 10: ‘\“\“‘“
invalid literal for int() with base 10: ‘“”’"
从提供的 JSON 数据中,我可以看到导致 "invalid literal for int() with base 10: '\"\"'"
错误的具体情况:
错误分析
在 deal_resp
部分中发现了错误信息:
"deal_resp": {"error": "invalid literal for int() with base 10: '\"\"'","init_params": {"is_last": 1},"exception_type": "ValueError"
}
错误原因
-
错误是在尝试将字符串
"\"\""
转换为整数时发生的。这个字符串实际上代表了双引号中间的空字符串,经过转义后变成了\"\"
。 -
在
input_json
部分找到了可能导致错误的字段:
"buff_end_time": "\"\"",
"buff_ready_time": "\"\"",
"carrier__name": "\"\""
- 程序尝试使用
int()
函数将这些包含双引号的空字符串转换为整数值,导致了ValueError
异常。
解决方案
这个错误的解决方案应该是:
- 在尝试将字符串转换为整数之前,检查字符串内容
- 如果字符串是空的或仅包含引号,应该提供一个默认值或跳过转换
- 使用 try/except 机制来处理转换错误
这正好与您之前修改的代码解决方法一致 - 当获取到空值或无效值时,需要提供合适的默认值或进行特殊处理,避免直接尝试将非数字字符串转换为整数。