首页 > 解决方案 > Python 请求 API 顺序运行

问题描述

我对 Python 还很陌生,我能够运行 python 请求并获取会话令牌并将其保存到一个变量中,现在我正在尝试将该会话传递给一个新请求,但我不确定我该怎么做API请求一个接一个地顺序?这是我的要求..

url = "https://1.1.1.1/jsonrpc"


payload = json.dumps(
  
  {
  "session": 1,
  "id": 1,
  "method": "exec",
  "params": [
    {
      "url": "sys/login/user",
      "data": [
        {
          "user": "admin",
          "passwd": "password"
        }
      ]
    }
  ]
}
)


response = requests.request("POST", url, data=payload, verify=False)
s = (response.json())
print (s['session'])

现在我想将 's' 变量传递给同一个 .py 文件中的新 API 请求,但不知道如何在彼此之后立即运行它们。

url = "https://1.1.1.1/jsonrpc"

payload = json.dumps({
  "session": s
  "id": 1,
  "method": "set",
  "params": [
    {
      "url": "/dvmdb/adom",
      "data": [
        {
          "name": "NEW_ADOM"
        }
      ]
    }
  ]
})

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

print(response.text)

标签: pythonpython-requests

解决方案


如果您s在两个单独的函数中使用,您可以s在这两个函数之外声明变量并通过global关键字更改它

s = None
def get_session():
    ...
    global s
    s = response.json()['session']

然后你可以s在另一个函数中使用


推荐阅读