Python用户添加和控制字典

Python用户添加和控制字典,python,python-3.x,request,Python,Python 3.x,Request,我目前正在做一个项目,我一直遇到障碍。 假设我有一个请求 requests.post("url.com", headers=headers) 我怎样才能让一个人控制标题呢? 例如,一个人如何向headers字典中添加另一个值,而不必打开并更改文件?我是说从命令行。在程序执行期间,您可以告诉程序“这些是我想要的头文件。”您可以将头文件保存在外部JSON文件中,如: { "header_1": "header value", "header_2": "header value 2"

我目前正在做一个项目,我一直遇到障碍。 假设我有一个请求

requests.post("url.com", headers=headers)
我怎样才能让一个人控制标题呢?
例如,一个人如何向headers字典中添加另一个值,而不必打开并更改文件?我是说从命令行。在程序执行期间,您可以告诉程序“这些是我想要的头文件。”

您可以将头文件保存在外部JSON文件中,如:

{
    "header_1": "header value",
    "header_2": "header value 2"
}
然后在需要生成请求时加载它,即:

import json

with open("path/to/your/headers.json", "r") as f:
    headers = json.load(f)

requests.post("url.com", headers=headers)
更新:如果希望通过命令行控制头,最基本的方法是使用列表访问CLI参数,因此,例如,如果您以以下方式调用脚本:
python script\u name.py header1=value\u 1 header2=value\u 2
,则可以将其转换为dict:

import sys

if len(sys.argv) > 1:  # ensure that we at least have some arguments
    headers = dict(x.split("=") for x in sys.argv[1:])
    requests.post("url.com", headers=headers)
else:
    print("At least one header required.")  # or whatever you want in that case...

但是,如果您正在寻找更健壮的CLI处理,我建议您检查内置模块。

您可以将标题保存在外部JSON文件中,如:

{
    "header_1": "header value",
    "header_2": "header value 2"
}
然后在需要生成请求时加载它,即:

import json

with open("path/to/your/headers.json", "r") as f:
    headers = json.load(f)

requests.post("url.com", headers=headers)
更新:如果希望通过命令行控制头,最基本的方法是使用列表访问CLI参数,因此,例如,如果您以以下方式调用脚本:
python script\u name.py header1=value\u 1 header2=value\u 2
,则可以将其转换为dict:

import sys

if len(sys.argv) > 1:  # ensure that we at least have some arguments
    headers = dict(x.split("=") for x in sys.argv[1:])
    requests.post("url.com", headers=headers)
else:
    print("At least one header required.")  # or whatever you want in that case...

但是,如果您正在寻找更健壮的CLI处理,我建议您检查内置模块。

您可以使用optpass从命令行解析参数:

from optparse import OptionParser

parser = OptionParser()
parser.add_option("-h", "--headers", dest="headers", help="Specify the headers using the syntax: <header_name>=<value>,<header_name>=<value>,...", type="str", default=None)

(options, args) = parser.parse_args()
headers = options.headers
然后,通过命令行传递标题,如下所示:

python3 program_name.py -h header_1=value_1,header_2=value_2

您可以使用OPTPASE从命令行解析参数:

from optparse import OptionParser

parser = OptionParser()
parser.add_option("-h", "--headers", dest="headers", help="Specify the headers using the syntax: <header_name>=<value>,<header_name>=<value>,...", type="str", default=None)

(options, args) = parser.parse_args()
headers = options.headers
然后,通过命令行传递标题,如下所示:

python3 program_name.py -h header_1=value_1,header_2=value_2

如果要从命令行传递标题,可以执行以下操作:

import sys
headers = dict([header.split('=', 1) for header in sys.argv[1:]])
request.post("url.com", headers)

然后通过传递头名称和值来调用它,如:
python file.py==

如果要从命令行传递头,可以执行以下操作:

import sys
headers = dict([header.split('=', 1) for header in sys.argv[1:]])
request.post("url.com", headers)

然后通过传递头文件名和值来调用它,比如:
python file.py==

您可以将头文件放在一个单独的文件中(比如json),然后将它们加载到python文件中,并随请求一起发送。您可以将头文件放在一个单独的文件中(比如json),然后将它们加载到python文件中,并随请求一起发送。嗨!非常感谢。我不是在寻找一个基于文件的解决方案,而是一种在程序运行期间在命令行中声明所需标题的方法。谢谢你好非常感谢。我不是在寻找一个基于文件的解决方案,而是一种在程序运行期间在命令行中声明所需标题的方法。谢谢非常感谢。正是我需要的。谢谢!正是我需要的。