从Python到Azure的REST API调用出现问题
我正在使用HTML表单接收用于Azure REST API调用的参数 我的代码从Python到Azure的REST API调用出现问题,python,json,azure,rest,api,Python,Json,Azure,Rest,Api,我正在使用HTML表单接收用于Azure REST API调用的参数 我的代码 @app.route('/storageaccountcreate', methods = ['POST', 'PUT']) def storageaccountcreate(): name = request.form['storageaccountname'] resourcegroup = request.form['resourcegroup'] subscriptionId = re
@app.route('/storageaccountcreate', methods = ['POST', 'PUT'])
def storageaccountcreate():
name = request.form['storageaccountname']
resourcegroup = request.form['resourcegroup']
subscriptionId = request.form['subscriptionId']
location = request.form['location']
sku = request.form['sku']
keys = [name, resourcegroup, subscriptionId, location, sku]
api_json = {keys: request.form[key] for key in keys}
url = 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}?api-version=2019-06-01'
r = requests.put((url),data=(api_json))
print(r.text)
return r.text
尝试使用此代码时出现以下错误
Bad Request
The browser (or proxy) sent a request that this server could not understand.
VSC中的调试也显示了以下内容
如果你有任何信息,将有助于我将非常感谢 Python不会在常规字符串中插入值:
url='1〕https://management.azure.com/subscriptions/{subscriptionId}/..'
# ^^^^^^^^^^^^^^^^
假设您使用的是Python 3.6或更高版本,请使用来启用插值:
url=f'https://management.azure.com/subscriptions/{subscriptionId}/..'
#^这里
那个url
应该是f字串吗?我不确定lol,这就是我问的原因。我不认为它应该是f字符串,因为我没有看到任何将它作为f字符串的示例,但我不确定。如果它是一个字符串,那么我会好奇它如何知道它将变量输入url的位置。那么您希望{subscriptionId}
在该字符串中做什么?它在调试中显示的问题是这部分api_json={keys:request.form[key]for key-in-key}
我认为该字符串中的subscriptionId将粘贴subscriptionId
变量。或者键=值