python - json.loads TypeError:字符串索引必须是整数
问题描述
这是JSON文件的内容
{
"error": {
"class": "com.attask.common.AuthenticationException",
"message": "Authentication Exception: Authentication Exception: {0}"
}
}
这是我试图解析上述内容的代码。相同的代码可以很好地解析其他 JSON 文件。但是在解析上述内容时,我收到一个错误“TypeError:字符串索引必须是整数”。
import json
fObj = open("attask1.json","r");
res = fObj.read().encode('utf-8');
fObj.close();
data = json.loads(res);
for each in data['error']:
WFErrorClass = each['class'];
WFErrorMessage = each['message'];
print WFErrorMessage;
print WFErrorClass;
任何人都请解释它为什么会发生并建议我如何克服这个问题
任何帮助是极大的赞赏。
Python 版本为 2.7.14
注意:缩进是完美的,没有间距错误
解决方案
each
运行时不再是字典而是字符串:
for each in data['error']:
print(each) # Returns 'class'
相反,您需要的是:
WFErrorClass = data['error']['class'];
WFErrorMessage = data['error']['message'];
print WFErrorMessage;
print WFErrorClass;
由于error
获取字典的第一部分和message
/class
获取第二个值。
推荐阅读
- android - 当在键盘上按下特定字符时,我可以切换到另一个 EditText 吗?
- javascript - TypeError:无法读取 react^16.13.1 react-router-dom^5.2.0 中未定义的属性“位置”
- string - 在 oracle 中用换行符在一列中显示两个字符串列的结果
- javascript - 状态更改未重新呈现组件概念问题
- c# - 为什么我在 Global.asax.cs 中的 Application_BeginRequest 没有被自托管的 WCF 服务调用
- mysql - 403 与服务器的连接已丢失 Phpmyadmin
- amazon-web-services - 404 Not Found nginx/1.19.0 istio spring boot
- vue.js - VueJS计算过滤器功能不起作用
- reactjs - 当我尝试做 create-react-app 给出不同的错误
- php - 调用 Lambda 客户端返回未知错误