繁体   English   中英

带有表单发布数据的django.utils.datastructures.MultiValueDictKeyError

[英]django.utils.datastructures.MultiValueDictKeyError with form post data

django.utils.datastructures.MultiValueDictKeyError: "'user_data'"

当我尝试从请求访问user_data时得到的是什么

post_data = dict(request.POST)
print(post_items)

退货

{'user_data[first_name]': ['Jamie'], 'user_data[name_last]': ['Lannister'], 'campus': ['McHale Hall'], 'user_data[twitter]': ['@jamielan']}

因此,如果我尝试仅获取user_data,则尝试这样做(不起作用)

post_data = dict(request.POST)
user_data = post_data['user_data']

我只想在此字典中获取user_data的所有实例并存储为json。 我怎样才能做到这一点?

预期的输出将类似于

您的POST数据确实很奇怪,但是为了正确起见,您应该执行以下操作:

first_name = post_data["user_data[first_name]"]
name_last = post_data["user_data[name_last]"]

因为字符串user_data[first_name]是字典的键,而不仅仅是字符串user_data

编辑:

如果要将用户数据转换为dict,则应在request.POST循环并检查包含user_data关键字的键:

user_data = {}
for key, value in request.POST.iteritems():
    if 'user_data' in key:
        field = key.split('[')[1].replace(']', '')
        user_data[key] = value

# convert into json
json_user_data = json.dumps(user_data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM