Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json - Fatal编程技术网

python如何在命令字符串中放入变量

python如何在命令字符串中放入变量,python,json,Python,Json,我是python新手,不知道如何执行以下操作。 我想在命令中放入一个变量,但它不起作用。该命令采用的是变量名,而不是其值 下面的脚本使用用户名和密码调用https以获取令牌。我的代币被退回了。然后我需要使用令牌来创建一个用户。 我有问题,iplanet对中的“令牌”未正确展开。它设置正确,因为我可以在命令之前打印出来。因此,令牌将包含类似“AQIC5wM2LY4Sfcydd5smOKSGJT”的内容,但当进行第二次http调用时,它将传递单词token,而不是tokens值 import

我是python新手,不知道如何执行以下操作。 我想在命令中放入一个变量,但它不起作用。该命令采用的是变量名,而不是其值

下面的脚本使用用户名和密码调用https以获取令牌。我的代币被退回了。然后我需要使用令牌来创建一个用户。 我有问题,iplanet对中的“令牌”未正确展开。它设置正确,因为我可以在命令之前打印出来。因此,令牌将包含类似“AQIC5wM2LY4Sfcydd5smOKSGJT”的内容,但当进行第二次http调用时,它将传递单词token,而不是tokens值

    import requests
    import json

    url = "https://www.redacted.com:443/json/authenticate"

    headers = {
        'X-Username': "user",
        'X-Password': "password",
        'Cache-Control': "no-cache",
        }

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

    tokencreate = json.loads(response.text)
    token=tokencreate['tokenId']
    print token

    url = "https://www.redacted.com:443/json/users"

    querystring = {"_action":"create"}

    payload = "{\r\n\"username\":\"Patrick\",\r\n\"userpassword\":\"{{userpassword}}\",\r\n\"mail\":\"patrick@example.com\"\r\n}"
    headers = {
        'iPlanetDirectoryPro': "token",
        'Content-Type': "application/json",
        'Cache-Control': "no-cache",
        }

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

    print(response.text)

这是因为当您打算传递变量时,您正在传递字符串'token'

您可以在这里创建令牌:

tokencreate = json.loads(response.text)
token=tokencreate['tokenId']
print token
但您不使用实际变量,它应该如下所示:

payload = "{\r\n\"username\":\"Patrick\",\r\n\"userpassword\":\"{{userpassword}}\",\r\n\"mail\":\"patrick@example.com\"\r\n}"
headers = {
    'iPlanetDirectoryPro': token,
    'Content-Type': "application/json",
    'Cache-Control': "no-cache",
    }

这是因为当您打算传递变量时,您正在传递字符串'token'

您可以在这里创建令牌:

tokencreate = json.loads(response.text)
token=tokencreate['tokenId']
print token
但您不使用实际变量,它应该如下所示:

payload = "{\r\n\"username\":\"Patrick\",\r\n\"userpassword\":\"{{userpassword}}\",\r\n\"mail\":\"patrick@example.com\"\r\n}"
headers = {
    'iPlanetDirectoryPro': token,
    'Content-Type': "application/json",
    'Cache-Control': "no-cache",
    }

“没有正确展开”是什么意思?我已经更新了问题。令牌包含类似于“AQIC5WM2LY4SFCYDD5SMOKSGJTFGVMJSNTRL0NWU_iKoRg8.*AAJTSQACMDIALNLINABM3MTU4NZU5OTI5MZK3MTA3ODEYAAJTMQACMDE.*”的内容,但该命令只是使用单词令牌而不是字符串运行。请尝试将行
'iPlanetDirectoryPro':“令牌”,
更改为
'iPlanetDirectoryPro':令牌,
(删除
标记
周围的引号)干杯,这就解决了:)你说“没有正确展开”是什么意思?我已经更新了问题。令牌包含类似于“AQIC5WM2LY4SFCYDD5SMOKSGJTFGVMJSNTRL0NWU_iKoRg8.*AAJTSQACMDIALNLINABM3MTU4NZU5OTI5MZK3MTA3ODEYAAJTMQACMDE.*”的内容,但该命令只是使用单词令牌而不是字符串运行。请尝试将行
'iPlanetDirectoryPro':“令牌”,
更改为
'iPlanetDirectoryPro':令牌,
(删除
token
周围的引号)干杯,这是固定的:)尽管如果我想在值周围加上“”,我必须使用“token”吗?不确定为什么要这样做,将其转换为字符串?如果引号很重要,您可以使用字符串格式化,例如:“'\'{}\”。格式化(令牌)将为您提供一个等于“{您的令牌的值在这里}”的字符串,尽管如果我想在该值周围使用“”,我必须使用\“令牌”?不确定为什么要这样做,将其转换为字符串?如果引号很重要,可以使用字符串格式化,如:“'\“{}\”。格式化(标记)将为您提供一个等于“{此处标记的值}”的字符串