【问题标题】:How to get values from this dictionary string from Django?如何从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
  • 如果一切都被搜索引擎解决了,为什么stackoverflow会站得住脚?
  • @ChrisPratt 可能想检查此问题的已接受答案。

标签: javascript django


【解决方案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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多