Python JSON 谷歌翻译提取问题

发布于 2024-11-01 04:59:15 字数 772 浏览 4 评论 0原文

我正在尝试使用 Simplejson 在 python 中提取 JSON 对象。但我收到以下错误。

Traceback (most recent call last):
  File "Translator.py", line 42, in <module>
    main()
  File "Translator.py", line 38, in main
    parse_json(trans_text)
  File "Translator.py", line 27, in parse_json
    result = json['translations']['translatedText']
TypeError: list indices must be integers, not str

这是我的 JSON 对象的样子,

{'translations': [{'translatedText': 'fleur'}, {'translatedText': 'voiture'}]}

这是我的 python 代码。

def parse_json(trans_text):   
    json = simplejson.loads(str(trans_text).replace("'", '"'))    
    result = json['translations']['translatedText']
    print result

有什么想法吗?

I am trying to extract the JSON object in python using Simplejson. But I am getting the following error.

Traceback (most recent call last):
  File "Translator.py", line 42, in <module>
    main()
  File "Translator.py", line 38, in main
    parse_json(trans_text)
  File "Translator.py", line 27, in parse_json
    result = json['translations']['translatedText']
TypeError: list indices must be integers, not str

This is my JSON object looks like,

{'translations': [{'translatedText': 'fleur'}, {'translatedText': 'voiture'}]}

and this is my python piece of code for it.

def parse_json(trans_text):   
    json = simplejson.loads(str(trans_text).replace("'", '"'))    
    result = json['translations']['translatedText']
    print result

any idea on it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深空失忆 2024-11-08 04:59:15

json['translations'] 是您定义的列表,因此它的索引必须是整数

才能获取翻译列表:

translations = [x['translatedText'] for x in json['translations']]

另一种方式:

translations  = map(lambda x: x['translatedText'], json['translations'])

json['translations'] is a list by your definition, so its indices must be integers

to get a list of translations:

translations = [x['translatedText'] for x in json['translations']]

another way:

translations  = map(lambda x: x['translatedText'], json['translations'])
最佳男配角 2024-11-08 04:59:15

json['translations'] 是对象列表。要提取 'translatedText' 属性,您可以使用 itemgetter

from operator import itemgetter

print map(itemgetter('translatedText'), json['translations'])

请参阅 detect_language_v2() 另一个使用示例。

json['translations'] is a list of objects. To extract the 'translatedText' property, you could use itemgetter:

from operator import itemgetter

print map(itemgetter('translatedText'), json['translations'])

See the implementation of detect_language_v2() for another usage example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文