我正在使用Robot框架來自動化一些HTTP POST相關測試。我編寫了一個自定義Python庫,它具有執行HTTP POST的功能。它看起來像這樣:用我的Python函數解碼錯誤
# This function will do a http post and return the json response
def Http_Post_using_python(json_dict,url):
post_data = json_dict.encode('utf-8')
headers = {}
headers['Content-Type'] = 'application/json'
h = httplib2.Http()
resp, content = h.request(url,'POST',post_data,headers)
return resp, content
這工作正常,只要我沒有使用任何Unicode字符。當我在json_dict
變量Unicode字符(例如,메시지)時,出現此錯誤:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xeb in position 164: ordinal not in range(128)
我正在運行的Python 2.7.3在Windows 7上我看到了幾個相關的問題,但我還沒有能夠解決這個問題。我是Python和編程新手,所以任何幫助表示讚賞。
謝謝。
請包括* full *回溯。 –
你試過post_data = unicode(json_dict,encoding =「utf-8」)嗎?我真的不清楚編碼/解碼/解析如何工作(這就是爲什麼這是一個評論,而不是答案),但也許它會幫助... – BorrajaX
@BorrajaX'unicode(json_dict,encoding =「utf- 8「)'與OP想要的完全相反 - 他們想要一個'str',*而不是'unicode'。 –