Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在引号之间调用函数_Python_Function_Api - Fatal编程技术网

Python 在引号之间调用函数

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

我是一名编程初学者,目前正在尝试在引号之间调用函数

在这里,更准确地说,我想将\name\:\name\中的名称替换为88。我怎么能用这些引号做到这一点呢

提前谢谢你的帮助

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)