Python 在引号之间调用函数
我是一名编程初学者,目前正在尝试在引号之间调用函数 在这里,更准确地说,我想将\name\:\name\中的名称替换为88。我怎么能用这些引号做到这一点呢 提前谢谢你的帮助Python 在引号之间调用函数,python,function,api,Python,Function,Api,我是一名编程初学者,目前正在尝试在引号之间调用函数 在这里,更准确地说,我想将\name\:\name\中的名称替换为88。我怎么能用这些引号做到这一点呢 提前谢谢你的帮助 import requests url = "https://api.multiloginapp.com/v1/profile/create" def descr(): return 88 querystring = {"token":"xxxx"} payload = "{\n\t\"generateZer
import requests
url = "https://api.multiloginapp.com/v1/profile/create"
def descr():
return 88
querystring = {"token":"xxxx"}
payload = "{\n\t\"generateZeroFingerprintsData\": true,\n \"name\": \"name\",\n \"OS\": \"MacOS\",\n \"platform\": \"MacIntel\",\n \"browserType\": \"mimic\",\n \"proxyHost\": \"0.0.0.0\",\n \"proxyPort\": 0,\n \"proxyIpValidation\": false,\n \"proxyType\": \"socks5\",\n \"maskFonts\": true,\n \"disablePlugins\": true,\n \"disableWebrtcPlugin\": true,\n \"disableFlashPlugin\": true,\n \"canvasDefType\": \"noise\",\n \"hardwareConcurrency\": 2,\n \"langHdr\": \"en-US,en;q=0.8\",\n \"timeZone\": \"US/Eastern\",\n \"audio\": {\n \"noise\": true\n },\n \"geolocation\": {\n \"permitType\": \"block\"\n },\n \"mediaDevices\": {\n \"audioInputs\": 1,\n \"audioOutputs\": 1,\n \"videoInputs\": 1\n },\n \"webgl\": {\n \"noise\": true\n },\n \"webRtc\": {\n \"type\": \"block\"\n },\n \"shared\": false\n\t},\n}"
headers = {
'Content-Type': "application/json",
'Cache-Control': "no-cache",
'Postman-Token': "xxx
}
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)
在这里直接询问的方法是使用字符串格式。例如,1而不是这个:
payload = " … \"name\": \"name\" … "
…这样做:
template = " … \"name\": \"%s\" … "
payload = template % (descr(),)
当我们这样做的时候,如果你把有效载荷放在单引号中,你就不需要逃避每一个。更好的是,如果你把它放在三个引号中,你就不需要逃避所有的换行。详情请参阅:
template = """{
\t"generateZeroFingerprintsData": true,
\t"name": "%s",
# …
}"""
但是你可以通过不做这些事情来让事情变得更容易。您正在尝试构建表示字典的JSON文本。做到这一点的简单方法是:
或者,更好的是,让请求为您完成这项工作
另外,请注意,我使用了更简单的POST函数,而不是调用通用请求函数和传递POST(您实际上只想这样做)
一,。通常,较新的基于大括号的格式更简单。特别是在3.6+中,您可以直接在引号中调用函数,只需将其包装在f字符串中的大括号中,如'spam=f'eggs={eggs}'。但是,当您试图创建的字符串充满了大括号,但没有充满文字百分比字符时,通常情况下,这是一个例外。首先,看起来您试图生成一些JSON。如果是这样,为什么不创建一个简单的普通dict,然后调用json.dumps呢?或者,更好的是,只需将dict传递给requests.postrl,json=payload,headers=headers?我建议使用json内置库将负载转换为Python字典,然后更改名称键。非常感谢,它工作得非常好。有什么好的理由让请求完成这项工作吗?我创建了一本字典,而你更好的选择似乎几乎完全相同
payloadobj = {
"generateZeroFingerprintsData": True,
"name": descr(),
# …
}
payload = json.dumps(payloadobj)
payload = {
"generateZeroFingerprintsData": True,
"name": name,
# …
}
# …
response = requests.post(url, json=payload, headers=headers, params=querystring)