Googletrans JSONDecodeError:期望值:第1行第1列(字符0)

时间:2020-07-16 04:17:06

标签: python pandas concat google-translate

我正在翻译一个具有数千行的数据框。它总是向我抛出错误:JSONDecodeError:期望值:第1行第1列(字符0)。 我已阅读此线程:GoogleTrans API Error - Expecting value: line 1 column 1 (char 0) 它说在三个for循环中重新初始化翻译器可以解决此问题,但不适用于我的情况。

from googletrans import Translator
translator = Translator() #init translator  

#word list 
l=['spring','summer','autumn','winter']

#langCodes More can be added by looking at the googletrans documentation
langCodes = {'Vietnam':["vi"],
 'Taiwan':["en"],
 'India':["en","hi"],
 'China':["en"],
 'Japan':["ja"],
 'United States':["en"],
 'Pakistan':["en",'ur'],
 'Bangladesh':["bn"],
 'Mexico':["es"],
 'Philippines':["en"],
 'Austria':["de"],
 'Singapore':["en"],
 'Malaysia':["ms"],
 'Canada':["en"],
 'Madagascar':["ml"],
 'Turkey':["tr"],
 'Italy':["en"],
 'Belgium':["nl","de","fr"],
 'Switzerland':["it","de","fr"],
 'Spain':["es"],
 'Sri Lanka':["si","ta"],
 'United Kingdom':["en"],
 'Colombia':["es"],
 'Nicaragua':["es"],
 'Haiti':["fr"],
 'Germany':["de"],
 'Brazil':["pt-BR"],
 'South Korea':["ko"],
 'Thailand':["th"],
 'France':["fr"],
 'Cambodia':["km"],
 'Poland':["pl"],
 'El Salvador':["es"],
 'Romania':["ro"],
 'Bulgaria':["bg"],
 'Guatemala':["es"],
 'Portugal':["pt"],
 'Lesotho':["en","st"],
 'Netherlands':["nl"],
 'Finland':["fi"],
 'Cayman Islands':["en"],
 'Indonesia':["id"],
 'Czech Republic':["cs"],
 'Croatia':["hr"],
 'Peru':["es"],
 'Israel':["iw"]
}

#df1 names and countries using pandas 
df1 = pd.DataFrame([["Tom","United States"],
["Sam","France"],
["Tim","China"],
["Andrew","Japan"],
["Bess","Turkey"],
["Sara","Romania"],
["Jeff","Switzerland"]],
columns=["Name","Country"]) 

#df2 initialize 
df2= pd.DataFrame(columns=["Query"])

#iterate through the rows of df1
for idx, row in df1.iterrows():
    #iterate through the possible languages
    #re-initialise translator
    translator = Translator()
    for lang in langCodes[row['Country']]: 
        #iterate through the possible words
        #re-initialise translator
        translator = Translator() 
        for word in l:   
            #translate the word using googletrans
            getTrans = translator.translate(word, dest=lang).text 
            #append output to new column 
            df2 = df2.append({"Query":row['Name']+" "+getTrans},ignore_index=True)

print(df2)

有人对这个问题有见解吗?任何帮助,将不胜感激!!预先感谢!

0 个答案:

没有答案