我有此请求获得响应,它是一个列表。
import requests
import json
lang='es'
title = 'this string, has a comma in it'
titleUrl = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=%s&dt=t&q=%s" % (lang, title)
r = requests.get(titleUrl).text
d = json.dumps(r)
o = json.loads(d)
print o[0][0][0]
请求返回
[[["esta cadena, tiene una coma en ella","this string, has a comma in it",,,0]],,"en"]
但是当我尝试打印"esta cadena, tiene una coma en ella"
时,我只会[
答案 0 :(得分:1)
r
是JSON(嗯,好吧。继续阅读。)d
是JSON的JSON。o
再次是原始JSON。o
只是一个字符串(以JSON表示法),o[0]
是包含其第一个字符的字符串(o[0][0][0]
是第一个字符的第一个字符的第一个字符JSON字符串,与o[0]
)相同。您永远无法正确解码对象。你需要这个:
r = requests.get(titleUrl).text
o = json.loads(r)
print o[0][0][0]
然而,谷歌翻译只给你一些看起来像JSON的东西 - 它实际上不是有效的JSON(因为谷歌停止支持该API);所以你必须要美化它,或者自己解析它。
import re
j = re.sub(r",,+", ",", r)
o = json.loads(j)
print o[0][0][0]