Проблема с вызовом API REST от Python до Azure - PullRequest
1 голос
/ 08 апреля 2020

Я использую форму HTML для получения параметров, используемых для вызовов Azure REST API.

Мой код

@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.

Также отладка в VS C показывает следующее

Фотография ошибки

Если у вас есть какая-либо информация, которая может помочь, я был бы очень признателен!

1 Ответ

2 голосов
/ 08 апреля 2020

Python не интерполирует значения в обычных строках:

url = 'https://management.azure.com/subscriptions/{subscriptionId}/...'
#                                                 ^^^^^^^^^^^^^^^^

Предполагая, что вы используете Python 3.6 или более позднюю, используйте f-string , чтобы включить интерполяцию :

url = f'https://management.azure.com/subscriptions/{subscriptionId}/...'
#     ^ here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...