无法解析数据
我刚刚打印了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
答案 0 :(得分:0)
这终于让我意识到出了什么问题–这是因为json.loads(request.body)
返回的是字符串,而不是字典,您将其分配给变量data
。之后,您尝试访问data['number']
,但是由于data
是一个字符串,而不是字典,因此无法像前者那样使用字符串索引。
这似乎很奇怪(可能会带来安全隐患,因此可能有更好的方法),但这似乎可行(未经测试):
import ast
...
data = ast.literal_eval(json.loads(request.body))