我正在學(xué)習(xí)在 Python 中使用 HTTP 請求,使用由 TopCoder 培訓(xùn)挑戰(zhàn)提供的這個 HTTP 請求(僅用于學(xué)習(xí)目的!沒有任何形式的補(bǔ)償),您必須在其中訪問 Google Translate API:curl --location --request POST 'https://translate.google.com/translate_a/single?client=at&dt=t&dt=ld&dt=qca&dt=rm&dt=bd&dj=1&hl=%25s&ie=UTF-8&oe=UTF-8&inputm=2&otf=2&iid=1dd3b944-fa62-4b55-b330-74909a99969e&' \--header 'Content-Type: application/x-www-form-urlencoded' \--header 'User-Agent: AndroidTranslate/5.3.0.RC02.130475354-53000263 5.1 phone TRANSLATE_OPM5_TEST_1' \--data-urlencode 'sl=de' \--data-urlencode 'tl=en' \--data-urlencode 'q=Hallo' 我想知道如何在我的 Python 應(yīng)用程序中發(fā)出等效請求?任何幫助表示贊賞。到目前為止我有:安裝并導(dǎo)入requests明白我需要將我的 POST 請求存儲在一個變量中并用 JSON 解析它。問題是我收到 JSONDecoder 錯誤Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\myname\Documents\Code\GoogleTranslateApiPy\env\lib\site-packages\requests\models.py", line 898, in json return complexjson.loads(self.text, **kwargs) File "c:\users\myname\appdata\local\programs\python\python38-32\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\myname\appdata\local\programs\python\python38-32\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\myname\appdata\local\programs\python\python38-32\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from Nonejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)使用此 Python 請求(我嘗試盡可能地翻譯 curl 請求):import requestsheaders = { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'AndroidTranslate/5.3.0.RC02.130475354-53000263 5.1 phone TRANSLATE_OPM5_TEST_1',}我覺得這里缺少一些基本的東西。Google 當(dāng)前文檔中對翻譯的請求與此提供的請求不同,但我想知道我如何才能以這種方式工作,以防將來我收到這樣的 curl 命令。
1 回答

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊
兩件事情:
您必須執(zhí)行POST 請求(當(dāng)前您正在執(zhí)行 get 請求)
您不包括請求的正文。例如,curl 調(diào)用包括這樣的 url 編碼數(shù)據(jù):data-urlencode 'q=Hallo'。您也必須在您的發(fā)布請求中包含此參數(shù),提供的鏈接向您展示了如何操作。這是將放入字典中的鍵值,例如 {q: 'Hallo', ...}
PS:我 90% 確定你也應(yīng)該將你當(dāng)前在元組中的查詢參數(shù)轉(zhuǎn)換為字典。因此,您將發(fā)布帶有標(biāo)題、參數(shù)和數(shù)據(jù)的帖子。
添加回答
舉報
0/150
提交
取消