3 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
json_normalize level ...將嵌套的“行程”列降級為長字符串
事實上不,事實并非如此。該列包含一個列表(或者可能是一個 Series 對象),這使 DBAPI 驅(qū)動程序感到困惑。為了讓它工作,我必須這樣做:
sl1 = pd.read_json(r"C:\Users\Gord\Desktop\sailing.json")
sl1 = pd.json_normalize(sl1["Dataset"])
sl1["MarketName"] = sl1["MarketName"].map(lambda x: json.dumps(x))
sl1["MarketNameList"] = sl1["MarketNameList"].map(lambda x: json.dumps(x))
sl1["Itinerary"] = sl1["Itinerary"].map(lambda x: json.dumps(x))
sl1.to_sql(name="celsailingtemp", con=cnx, if_exists="append", index=True)

TA貢獻1830條經(jīng)驗 獲得超9個贊
我認為你的ftp傳輸是通過ascii進行的。將 ftp 設(shè)置為使用二進制模式。
sl1 = pd.read_json('ftp://username:password@ftp.address.com/directory/sailings_cel.txt;type=I')
我看到你的回溯,似乎是python編碼問題,而不是MySQL。設(shè)置使用utf-8。
python編碼 在執(zhí)行之前設(shè)置python編碼。
export PYTHONIOENCODING=utf-8
OS編碼確認utf-8編碼類型,執(zhí)行
locale -a
命令。
# locale -a C C.UTF-8 POSIX
如果有C.UTF-8
,請設(shè)置C.UTF-8
。
export LC_CTYPE="C.UTF-8"

TA貢獻1853條經(jīng)驗 獲得超6個贊
看起來您可以更改數(shù)據(jù)庫中列的字符集,這應(yīng)該使您的代碼運行良好。
順便說一句,處理此類問題的另一種方法是將數(shù)據(jù)的子集重新創(chuàng)建為小提琴并在那里使用它。
添加回答
舉報