Python JSON Google Translator проблема извлечения
Я пытаюсь извлечь объект JSON в Python с помощью Simplejson. Но я получаю следующую ошибку.
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
есть идеи по этому поводу?
2 ответа
Решение
json['translations']
это список по вашему определению, поэтому его индексы должны быть целыми числами
чтобы получить список переводов:
translations = [x['translatedText'] for x in json['translations']]
по-другому:
translations = map(lambda x: x['translatedText'], json['translations'])
json['translations']
это список объектов. Чтобы извлечь 'translatedText'
собственность, вы можете использовать itemgetter
:
from operator import itemgetter
print map(itemgetter('translatedText'), json['translations'])
Смотрите реализацию detect_language_v2()
для другого примера использования.