在 Deepl API 的 POST 请求中使用变量作为数据参数

Using variable as data parameter in a POST request with Deepl API

我正在使用此脚本向 Deepl API 发出 POST 请求。在这种情况下,文本参数作为数据参数传递。我想将文本作为变量传递,以便我可以在其他脚本中使用它,但如果它不是数据参数,我将无法发出 post 请求。


url = "https://api.deepl.com/v2/translate?auth_key=xxxx-xxxx-xxx-xxxx-xxxxxxxxx"

querystring = {
    "text" = "When we work out how to send large files by email",
    "target_lang" : "es"
}

response = requests.request("POST", url, data=querystring)

print(response.text)  

是否可以使用文本作为变量来发出此请求?

作为一个更好的例子,这段文字来自以前的脚本。如果我将文本用作数据参数,则无法使用包含该文本的先前变量。如果文本来自前一个变量,我不能在数据参数中使用这个变量。例如:

脚本前的变量: text = "When we work out how to send large files by email" 我想在 POST 请求中使用这个文本变量。

I want to use this text variable in the POST request.

我很困惑。为什么不在 POST 请求中将此文本用作变量?

url = "https://api.deepl.com/v2/translate?auth_key=xxxx-xxxx-xxx-xxxx-xxxxxxxxx"

text = "When we work out how to send large files by email"

querystring = {
    "text": text,
    "target_lang": "es"
}

response = requests.request("POST", url, data=querystring)

print(response.text)

除此之外 - 原则上,不要调用不包含查询字符串的变量 querystring。正确命名很重要。

为了一个POST请求,你post的数据是data,或者一个payload,一个body:

body = {
    "text": text,
    "target_lang": "es"
}

response = requests.request("POST", url, data=body)

但是甚至根本不创建一个单独的变量也没有错:

response = requests.request("POST", url, data={
    "text": text,
    "target_lang": "es"
})