gpt4 book ai didi

Django Test Client压缩嵌套的JSON

转载 作者:行者123 更新时间:2023-12-04 09:19:38 25 4
gpt4 key购买 nike

我遇到的问题非常类似于Django's Querydict bizarre behavior: bunches POST dictionary into a single keyUnit testing Django JSON View。但是,这些线程中的问题/答案都没有真正指出我遇到的指定问题。我正在尝试使用Django的测试客户端来发送带有嵌套JSON对象的请求(对于具有非JSON值的JSON对象,我做得很好)。

尝试#1:这是我的初始代码:

    response = c.post('/verifyNewMobileUser/', 
{'phoneNumber': user.get_profile().phone_number,
'pinNumber': user.get_profile().pin,
'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}})

如您所见,我的请求数据中有一个嵌套的JSON对象。但是,这就是request.POST的样子:
<QueryDict: {u'phoneNumber': [u'+15551234567'], u'pinNumber': [u'4171'], u'deviceInfo': [u'deviceType', u'deviceID']}>

尝试2:然后,我尝试添加content-type参数,如下所示:
response = c.post('/verifyNewMobileUser/', 
{'phoneNumber': user.get_profile().phone_number,
'pinNumber': user.get_profile().pin,
'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}},
'application/json')

我现在得到的request.POST是
<QueryDict: {u"{'deviceInfo': {'deviceType': 'I', 'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067'}, 'pinNumber': 5541, 'phoneNumber': u' 15551234567'}": [u'']}>

我要做的就是能够为我的请求数据指定一个嵌套的字典。是否有捷径可寻?

最佳答案

以下对我有用(使用命名的args):

geojson = {
"type": "Point",
"coordinates": [1, 2]
}

response = self.client.post('/validate', data=json.dumps(geojson),
content_type='application/json')

关于Django Test Client压缩嵌套的JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11069357/

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