【发布时间】:2016-12-06 12:26:58
【问题描述】:
我尝试四处寻找答案并尝试了很多次,但是这里发生了一些奇怪的事情。在我看来,我有一些函数可以对通过 AJAX 传入的 JSON 数据进行操作。目前我正在尝试对这些进行一些单元测试。
在我的测试用例中,我有:
kwargs = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
url = '/<correct_url>/upload/'
data = {
"id" : p.id
}
c = Client()
response = c.delete(url, data, **kwargs)
content_unicode = response.content.decode('utf-8')
content = json.loads(content_unicode)
p.id 只是一个来自我正在使用的模型的整数。
然后我有一个正在测试的函数,其中部分如下所示:
def delete_ajax(self, request, *args, **kwargs):
print (request.body)
body_unicode = request.body.decode('utf-8')
print (body_unicode)
body_json = json.loads(body_unicode)
第一个打印语句产生:
.....b"{'id': 1}"
另一个:
{'id': 1}
最后我得到第四行的错误如下:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
这里出了什么问题?我知道正确的 JSON 格式应该是{"id": 1},这就是我从我的测试用例中发送的内容。但是在某个地方,单引号被引入到组合中,让我头疼。
有什么想法吗?
【问题讨论】: