无法解析json字符串索引必须为整数

时间:2019-03-25 11:43:06

标签: python json

无法解析数据

我刚刚打印了data = json.loads(somepostmessage)

数据输出:

{'number': 'INC0010021', 'title': 'ghjghjgh', 'description': 'test creating sericenow tickets through post', 'state': 'New', 'priority': 'Planning', 'assigned_to': '', 'caller_id': ''}

代码:

 if request.method == 'POST':
    print(request.body)
    print(json.loads(request.body))
    print(type(json.loads(request.body)))
    data = json.loads(request.body)
    print(data['number'])
    return Response({"message": "Data mismatching"})

我试图通过data['number']进行解析:

Error: String indices must be integers

1 个答案:

答案 0 :(得分:0)

这终于让我意识到出了什么问题–这是因为json.loads(request.body)返回的是字符串,而不是字典,您将其分配给变量data。之后,您尝试访问data['number'],但是由于data是一个字符串,而不是字典,因此无法像前者那样使用字符串索引。

这似乎很奇怪(可能会带来安全隐患,因此可能有更好的方法),但这似乎可行(未经测试):

import ast
...
data = ast.literal_eval(json.loads(request.body))