如何提取并将其变为变量? Django的

时间:2016-12-20 08:59:47

标签: python arrays django unicode

我有这样的输出。

data = <QueryDict: {u'product_name': [u'L4'], u'price': [u''], u'product_description': [u''], u'id': [u"[u'1']"], u'product_status': [u'1']}>

老实说,我不知道输出是怎么样的,但如果我想获得id。

我使用了类似(data['id'][0])之类的内容,但这并没有得到我的任何内容,如果我使用(data['id'])这就是我得到的u'[u\\'1\\']

当我发布这种数据时,我遇到了这样的错误 invalid literal for int() with base 10: '['

2 个答案:

答案 0 :(得分:0)

您需要将其转换为普通字典,如下所示:

my_dict = dict(data.iterlists())

现在,您应该能够my_dict['id'][0]

您可以使用ast.literal_eval()来解决问题,但正如@Daniel所述,您可能需要修复数据来源。

>>> import ast
>>> 
>>> id = ast.literal_eval("[u'1']")
>>>
>>> id
[u'1']
>>> id[0]
u'1'

答案 1 :(得分:0)

您可能正在尝试使用request.data读取数据。您应该尝试request.POST

因此,在您的情况下,要阅读product_name,您可以执行以下操作:request.POST['product_name']以及其他字段。