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

7 投票
1 回答
5807 浏览
提问于 2025-04-16 10:00

我刚接触Python和JSON,所以如果我说得不太明白,请见谅。我从谷歌翻译API得到了以下结果,我想提取出“translatedText”的值:

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

这个响应只是用下面的方式存储为一个字符串:

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

所以,我想做的就是获取翻译后的文本并把它存储在一个变量里。我查阅了Python文档,但感觉太复杂了,而且似乎没有考虑到JSON是以简单字符串的形式存储的,而不是一些超级炫酷的JSON对象。

1 个回答

13

你可以使用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!'

撰写回答