Python: "导入 JSON... json.loads(request.body)" 2.7->3.4
我最近把一个Django服务器从Python 2.7升级到了3.4.1版本。我的请求内容(request.body)是一个序列化成JSON格式的数组。当我把它反序列化时,它会变成一个Python列表。
不幸的是,似乎在新版本中,json.loads不再接受原始字节(而request.body就是这种原始字节)。
我该怎么解决这个问题呢?
def index(request):
if request.method == 'POST':
print("Made it here!")
registered = []
notRegistered = []
print("Is it this?")
print(repr(request.body))
data = json.loads(request.body)
print("Did I make it here?")
最后的打印语句从来没有执行过,所以我猜这和json.loads()有关。
1 个回答
1
我本来以为会出现错误追踪信息,而不是仅仅显示“最后一行没有执行”,不过不管这个了...
# Let's just assume the request is UTF-8 encoded.
data = json.loads(request.body.decode('utf-8'))