如何从Django的这个字典字符串中获取值?

Posted

技术标签:

【中文标题】如何从Django的这个字典字符串中获取值?【英文标题】:How to get values from this dictionary string from Django? 【发布时间】:2012-03-24 02:55:10 【问题描述】:

我的 request.POST 是这样的:

QueryDict: <QueryDict: u'rows[]': [u'4f58707ba5e97c09d5000003', u'4f5881a3a5e97c0ba8000000']>

我正在尝试将这些值放入一个数组中。但是我的代码

request.POST['rows[]'] 

结果只有 '4f5881a3a5e97c0ba8000000' 为什么?如何将这两个值放入一个数组中?

【问题讨论】:

看起来像一个字符串化的 Python 字典?需要用 javascript 处理吗? 您能否为您的问题提供更多背景信息?你需要将字典传递给javascript还是什么? 字典不是字符串,它们是 Python,而不是 Django,即使在您选择的搜索引擎上花费最少的努力,您的问题也很容易得到回答。但是,在这里我什至会为您省去这些努力:docs.python.org/tutorial/datastructures.html#dictionaries 如果一切都被搜索引擎解决了,为什么***会站得住脚? @ChrisPratt 可能想检查此问题的已接受答案。 【参考方案1】:

QueryDict 不是标准的 Python 字典。它是MultiValueDict 的子类:https://code.djangoproject.com/browser/django/tags/releases/1.3.1/django/utils/datastructures.py#L223 您可以使用request.POST.getlist('rows[]') 获取这两个项目。

【讨论】:

是的 getlist 是我需要的。谢谢【参考方案2】:

以下是我的做法。

my_dict = u'en': u'description', u'tr': u'aciklama'

print my_dict[u'en']
print my_dict[u'tr']

在我看来有些奇怪的是您的字典键是 unicode 字符串。如果您想将它们标准化,请查看以下答案:Fastest way to convert a dict's keys & values from `unicode` to `str`?

【讨论】:

【参考方案3】:

来自javascript:

var str = obj.en

来自python:

str = obj['en']

如果你想在 python 中获取 'en' 或默认值以防它不存在:

str = obj.get('en', 'Default Value')

【讨论】:

以上是关于如何从Django的这个字典字符串中获取值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftyJSON 从深度嵌套的 JSON 字典中获取字符串 [重复]

从字典数组中获取元素并将键保存为字符串,将值保存为字符串

如何将 XML 属性值添加到包含对象的字典中

如何在 Django 模板中访问字典列表

django模型,如何动态设置查询的字段?

22,23节Django的GET和POST属性笔记