在Python中获取特定JSON元素的值

Mat*_*att 8 python json

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

{
 "data": {
  "translations": [
   {
    "translatedText": "Toute votre base sont appartiennent à nous"
   }
  ]
 }
}
Run Code Online (Sandbox Code Playgroud)

使用以下命令将此响应存储为字符串:

response = urllib2.urlopen(translateUrl)
translateResponse = response.read()
Run Code Online (Sandbox Code Playgroud)

所以是的,我想做的就是获取翻译后的文本并将其存储在变量中.我搜索过Python Docs,但它看起来很混乱,似乎并不认为JSON存储为一个简单的字符串而不是一些超酷的JSON对象.

fma*_*ark 13

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

>>> 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!'
Run Code Online (Sandbox Code Playgroud)