gpt4 book ai didi

python - QueryDict 到字符串在 JSON 中丢失列表

转载 作者:太空狗 更新时间:2023-10-30 02:10:39 25 4
gpt4 key购买 nike

我的请求是 QueryDict 类型的,我想将其转换为 JSON 对象或字符串,以便我可以根据 JSON 模式对其进行验证。其中一个 JSON 字段包含一个列表,如下所示:

{
"message": "Hello!",
"people": ["Aaron", "Randy", "Chris", "Andrew"]
}

当我使用 json.dumps() 将其转换为字符串时,得到以下内容:

'{"message": "Hello!", "people": "Andrew"}'

处理这种情况的最佳方法是什么?

最佳答案

将您的 QueryDict 转换为标准的 Python dict 并在生成的 dict 上调用 json.dumps() :

import json
from django.http import QueryDict

qd = QueryDict('people=Aaron&people=Randy&people=Chris&people=Andrew&message=Hello!')

>>> qd
<QueryDict: {u'message': [u'Hello!'], u'people': [u'Aaron', u'Randy', u'Chris', u'Andrew']}>
>>> json.dumps(qd)
'{"message": "Hello!", "people": "Andrew"}'
>>> json.dumps(dict(qd))
'{"message": ["Hello!"], "people": ["Aaron", "Randy", "Chris", "Andrew"]}'

如果您不喜欢具有单个值的键被表示为列表,您可以这样做:

>>> d = {k:v if len(v) > 1 else v[0] for k,v in qd.iterlists()}
>>> json.dumps(d)
'{"message": "Hello!", "people": ["Aaron", "Randy", "Chris", "Andrew"]}'

关于python - QueryDict 到字符串在 JSON 中丢失列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28621736/

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