gpt4 book ai didi

python - 来自 Django 的 JsonResponse - 显示的值不正确

转载 作者:太空宇宙 更新时间:2023-11-04 10:19:20 25 4
gpt4 key购买 nike

更新:当您使用 chrome 浏览器访问生成 JSON 作为输出的页面时。显示的结果不正确。

考虑这个生成 json 的 django 代码。当你 json.dumps 一个 long 时,这两个数字与预期值不同。这是代码:

from django.http import JsonResponse, HttpResponse
import json

def dumps1(request):
return JsonResponse({'pk': 456011173705795438 })


def dumps2(request):
return HttpResponse(json.dumps({'pk': 455928532169112023 }))

自然地,您会期望 dumps1 返回 HttpResponse,正文为 {'pk': 456011173705795438 } 而 dumps2 应该返回 {'pk': 455928532169112023 } 但实际结果是

{
pk: 456011173705795460
}

{
pk: 455928532169112000
}

请注意,在这两种情况下,数字的最后两位数字都发生了变化。如果您打开 django shell 并输入 json.dumps({'pk': 455928532169112023 }),则会生成正确的输出。

Django 1.8.5 和 python 2.7.6 (ipython 4.0.b1)

这是错误还是功能?

最佳答案

如评论中所述,我打开了 python shell 并执行了以下操作:

>>>from django.http import JsonResponse, HttpResponse 
>>>import json
>>>j = JsonResponse({'pk': 455928532169112023 })
>>>h = HttpResponse(json.dumps({'pk': 455928532169112023 }))
>>>for i in j:
print i
>>>for i in h:
print i

都打印了 b'{"pk": 455928532169112023}' 这是正确的值。我也在使用 Django 1.8,所以问题可能出在其他地方。

关于python - 来自 Django 的 JsonResponse - 显示的值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33271356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com