gpt4 book ai didi

python - Django 解析具有字典的 json 请求导致错误

转载 作者:行者123 更新时间:2023-11-29 10:50:15 24 4
gpt4 key购买 nike

我将以下 NSMutableDictionary 作为 AFNetworking 的参数从 iPhone 应用程序 (IOS 6.1) 传递到 Django 服务器

NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
[parameters setObject:[self getProductDictionary] forKey:@"prodDic"];
[parameters setObject:ApplicationDelegate.userUniqueId forKey:@"userID"];
[manager POST:BaseURLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {...}

-(void) getProductDictionary
{
NSMutableDictionary *products = [[NSMutableDictionary alloc] init];
[products setObject:@"aaa" forKey:@"prod1"];
[products setObject:@"vvv" forKey:@"prod2"];
[products setObject:@"bbb" forKey:@"prod3"];
}

在服务器中我有以下 View :

import json
def foo(request):
if request.method == 'POST':
user_id = request.POST['userID']
products=json.loads(request.POST['prodDic'])

return HttpResponse("Done")

以下行导致错误 products=json.loads(request.POST['prodDic']) 并且错误是:raise MultiValueDictKeyError(repr(key)) MultiValueDictKeyError: "'prodDic'"

为了调试,我删除了这一行并添加了这段代码:

 #for debug
for key in request.POST:
value = request.POST[key]
print value

key 如下所示:prodDic[prod1]

我怎样才能将字典接收到产品中,这样我就可以像这样运行它:

for key in products:
value = products[key]

最佳答案

请求对象 GET 和 POST 可以包含相同键的多个值。作为一些 HTML 表单元素,特别是 ,为同一个键传递多个值。

您正在将 request.POST 对象传递给 JSON 序列化程序,它不允许多个键具有相同的名称。所以请检查你的 request.POST 数据,看看你是否得到了多个同名的 key 。如果是,那么您必须在传递给 JSON 加载函数之前处理此数据。

希望能给大家一些解决问题的指点

关于python - Django 解析具有字典的 json 请求导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759755/

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