gpt4 book ai didi

Python 字典自带一个额外的大括号,作为 JSON 键,通过 HttpResponse

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:58 25 4
gpt4 key购买 nike

我正在通过 GET 请求向 Django 服务器发送特定的 JSON。 JSON如下。

data = {
test1: [1, 2, 3, 4],
test2: {
test21: ['a', 'b'],
test22: 'data22'
}
};

编辑2:发送数据的代码:

string = JSON.stringify(data)
url = 'http://127.0.0.1:8000/calc/?' + string
$http.get(url).success(function(response) {console.log(response)});

编辑 2 结束

在我stringify并发送它之后,我在请求数据上运行以下代码。

def calc (request):
data = request.GET
z = dict(data.iterlists())
res = json.dumps(z)
return HttpResponse(res)

http响应出来如下:

对象 {{"test1":[1,2,3,4],"test2":{"test21":["a","b"],"test22":"data22"} }: 数组[1]}

Array[1] 元素基本上是一个空数组,因此没有用。当我将代码中的第三行更改为

z = dict(data.iteritems())

我得到以下响应

对象 {{"test1":[1,2,3,4],"test2":{"test21":["a","b"],"test22":"data22"} }:“”

基本上,我需要的 JSON 作为另一个 JSON 的键出现。我知道我可以使用 Object.keys() 方法来提取所需的 JSON,但我希望响应是正确的。

如何在 python 中解决这个问题?

编辑 1: 我认为当我将数据转换为第 3 行中的 dict 项时出现错误。我认为这是因为对 z 的操作,这应该是一个 dict 正在抛出错误。例如 y = z['test1'] 会抛出一个错误。

最佳答案

您发送数据的方式有点错误。

当你使用 GET 时,url 是这样的:

http://127.0.0.1:8000/?key1=value1&key2=value2

您在上面所做的实际上使 json 字符串成为而不是。因此请求格式错误。

我认为你需要做的是:

url = 'http://127.0.0.1:8000/calc/?payload=' + string

这将使 payload 成为键,而您的实际字符串成为值。并检索它:

data = request.GET
json_string = data['payload']
# load the string

关于Python 字典自带一个额外的大括号,作为 JSON 键,通过 HttpResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30593271/

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