我正在尝试学习塞尔维亚语atm,并为自己提供了一个包含最常用单词的csv文件
我现在要做的是让我的脚本通过API将每个单词放入Google Translate,并将此翻译保存到同一个文件中。
由于我是一个完整的Python和JSON初学者,所以我对如何使用我从API获得的JSON感到非常困惑。
我如何进行翻译?
from sys import argv
from apiclient.discovery import build
import csv
import json
script, filename = argv
serbian_words = []
# Open a CSV file with the serbian words in one column (one per row)
with open(filename, 'rb') as csvfile:
serbianreader = csv.reader(csvfile)
for row in serbianreader:
# Put all words in one single list
serbian_words.extend(row)
# send that list to google item by item to have it translated
def main():
service = build('translate', 'v2',
developerKey='xxx')
for word in serbian_words:
translation = service.translations().list(
source='sr',
target='de',
q = word
).execute()
print translation # Until here everything works totally fine.
if __name__ == '__main__':
main()
对我来说什么终端打印看起来像{u'translations': [{u'translatedText': u'allein'}]}
,其中“allein”是塞尔维亚语单词的德语翻译。
我怎样才能找到“allein”?我试图通过尝试实现Python附带的json Encoder和Decoder来解决这个问题,但我无法弄明白。
我很乐意为此提供帮助,非常感激。
答案 0 :(得分:1)
您可以使用项目访问权限到达最里面的字符串:
translation['translations'][0]['translatedText']
或者你可以遍历列出的所有翻译(这是一个列表):
for trans in translation['translations']:
print trans['translatedText']
因为Google的翻译服务可以为给定的文本提供多个翻译。