2012-11-30 102 views
2

我在學習塞爾維亞語atm併爲自己獲得了使用頻率最高的單詞的csv文件。
我現在想要做的是讓我的腳本通過API將每個單詞放入Google翻譯並將該翻譯保存到同一個文件中。
因爲我是一個完全的Python和JSON初學者,所以我對如何使用從API獲得的JSON非常困惑。如何從Google Translate API使用Python訪問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編碼器和解碼器來解決這個問題,但我無法弄清楚。

我很想在這方面得到任何幫助,我會非常感激。

回答

1

您可以使用項目進入到最裏面的字符串:

translation['translations'][0]['translatedText'] 

,或者你可以遍歷所有列出的翻譯(這是一個列表):

for trans in translation['translations']: 
    print trans['translatedText'] 

谷歌的翻譯服務可以爲給定文本提供多個翻譯。

+0

太棒了,解決了它! :) 非常感謝! – LukasKawerau

相關問題