【问题标题】:Get the value of specific JSON element in Python在 Python 中获取特定 JSON 元素的值
【发布时间】:2011-01-15 01:56:56
【问题描述】:

我是 Python 和 JSON 的新手,所以如果我听起来毫无头绪,我很抱歉。我从 Google Translate API 得到以下结果,并想解析出“translatedText”的值:

{
 "data": {
  "translations": [
   {
    "translatedText": "Toute votre base sont appartiennent à nous"
   }
  ]
 }
}

这个响应被简单地存储为一个字符串,使用这个:

response = urllib2.urlopen(translateUrl)
translateResponse = response.read()

是的,我要做的就是获取翻译后的文本并将其存储在变量中。我已经搜索了 Python Docs,但它似乎很混乱,似乎没有考虑将 JSON 存储为简单的字符串,而不是一些超级酷的 JSON 对象。

【问题讨论】:

  • 为了改进文档:您在文档中找到json 模块了吗?您找到“基本用法”部分了吗?关于dumpsloads 的描述有什么给您的印象,即文档没有“似乎将 JSON 存储为一个简单的字符串而不是一些超级酷的 JSON 对象”?如果将示例包含在每个函数定义中而不是放在前面一大堆中,会更有帮助吗?
  • 好吧,总的来说,我是 Python 文档的新手,所以我不清楚事情是如何描述的。在 PHP/Java 文档中,函数的组织和定义似乎非常清晰,但这可能正是我所习惯的。同样是的,我认为如果在开始时而不是在函数中给出示例会更好,因为在您提前阅读之前不清楚它们实际上在做什么。我现在可以看到加载函数的作用,但是当我之前扫描它时,它看起来像是采用特殊格式而不是 JSON 格式的字符串。

标签: python json


【解决方案1】:

您可以使用 Python >= 2.6 中的 json 模块将文本解析为对象:

>>> import json
>>> translation = json.loads("""{
...  "data": {
...   "translations": [
...    {
...     "translatedText": "Toute votre base sont appartiennent  nous"
...    },
...    {
...     "translate": "¡Qué bien!"
...    }
...   ]
...  }
... }
... """)
>>> translation
{u'data': {u'translations': [{u'translatedText': u'Toute votre base sont appartiennent  nous'}]}}
>>> translation[u'data'][u'translations'][0][u'translatedText']
u'Toute votre base sont appartiennent  nous'
>>> translation[u'data'][u'translations'][1][u'translate']
u'¡Qué bien!'

【讨论】:

  • 如果你有 python
  • 是的,请考虑我提出的修改意见。他们清除了我在阅读您的回答后仍然存在的一些疑问
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多