如何从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的这个字典字符串中获取值?的主要内容,如果未能解决你的问题,请参考以下文章