Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
用于存储http请求的Python数据结构_Python_Http_Header_Request_Response - Fatal编程技术网

用于存储http请求的Python数据结构

用于存储http请求的Python数据结构,python,http,header,request,response,Python,Http,Header,Request,Response,我正在寻找处理和存储http请求头的方法/技巧。 我需要保留标题的顺序,并准备好重复 (键和值的偶数副本) 无论是一本词典,还是一本订购的词典,在这里都不起作用 这些需求通常使用哪些数据结构?使用(标题、值)元组列表(或集合。命名元组): 这将保留每个标题的输入顺序,也将保留重复项 查找的效率不如字典,但(大概)每个请求的头数不会很大。您可以使用列表理解或生成器表达式(如果更合适)进行查找。例子 查找用户代理: user_agents = [header for header in header

我正在寻找处理和存储http请求头的方法/技巧。 我需要保留标题的顺序,并准备好重复 (键和值的偶数副本)

无论是一本词典,还是一本订购的词典,在这里都不起作用

这些需求通常使用哪些数据结构?

使用
(标题、值)
元组列表(或
集合。命名元组
):

这将保留每个标题的输入顺序,也将保留重复项

查找的效率不如字典,但(大概)每个请求的头数不会很大。您可以使用列表理解或生成器表达式(如果更合适)进行查找。例子 查找
用户代理

user_agents = [header for header in headers if header[0].lower() == 'user-agent']
>>> user_agents
[('User-Agent', 'Mozilla'), ('User-Agent', 'Safari')]
将其封装在一个类中相当容易,该类提供了
add\u header(header,value)
get\u header(header)
方法。您可以通过实现
\uu getitem\uuu()
来提供类似dict的按名称查找。我将把它留作练习。

使用
(标题、值)
元组(或
集合。namedtuple
)列表:

这将保留每个标题的输入顺序,也将保留重复项

查找的效率不如字典,但(大概)每个请求的头数不会很大。您可以使用列表理解或生成器表达式(如果更合适)进行查找。例子 查找
用户代理

user_agents = [header for header in headers if header[0].lower() == 'user-agent']
>>> user_agents
[('User-Agent', 'Mozilla'), ('User-Agent', 'Safari')]

将其封装在一个类中相当容易,该类提供了
add\u header(header,value)
get\u header(header)
方法。您可以通过实现
\uu getitem\uuu()
来提供类似dict的按名称查找。我将把它留作练习。

字典可以用于: 假设您有一个元组列表(头、值) 例如:

这将保留输入顺序,也将保留重复项

print(values)
{'User-Agent': ['Mozilla', 'Chrome'], 'Content-Type': ['application/json']}

字典可以实现这一点: 假设您有一个元组列表(头、值) 例如:

这将保留输入顺序,也将保留重复项

print(values)
{'User-Agent': ['Mozilla', 'Chrome'], 'Content-Type': ['application/json']}

大家好,欢迎!也许值得一看,其中有一些关于如何提出一个很好的问题的技巧,可以让你得到你想要的答案。谢谢你的见解,但我问的问题正是我想问的。我用搜索引擎做作业。我在这里要求的是经验。你有没有试过将它们存储在一个列表中?什么是“准备好复制”的意思?您需要保留所有重复项,还是忽略它们?元组列表听起来像是在第一种情况下就可以完成这项工作,并且可以很容易地进行调整,以防止在插入时重复。我需要准确地存储它们。任何事情都不能忽视,必须保持秩序。我在这里谈论的是最不符合RFC的请求。您好,欢迎!也许值得一看,其中有一些关于如何提出一个很好的问题的技巧,可以让你得到你想要的答案。谢谢你的见解,但我问的问题正是我想问的。我用搜索引擎做作业。我在这里要求的是经验。你有没有试过将它们存储在一个列表中?什么是“准备好复制”的意思?您需要保留所有重复项,还是忽略它们?元组列表听起来像是在第一种情况下就可以完成这项工作,并且可以很容易地进行调整,以防止在插入时重复。我需要准确地存储它们。任何事情都不能忽视,必须保持秩序。我在这里谈论的是最不符合RFC的请求。@PeteNoc:没问题。请考虑投票和/或接受这个答案:“我的投票被忽略了(我是新手);)现在寻找“接受”按钮。请考虑投票和/或接受这个答案:“我的投票被忽略了(我是新手);),现在寻找“接受”按钮。