在写爬虫的时候,经常需要处理cookie,requests库里的cookie是dict,但是headers['cookie']却是一个key=value的字符串。

下面是几个用推导式实现的转换函数,供大家参考。

#coding=utf-8
#create by :joshua zou
#create date :2018.5 import logging #key=value列表转换成cookie字典
def cookie_list_2_dict(cookli):
if not isinstance(cookli,list):
logging.error('error list param...')
return {} return {item.split('=')[0]:item.split('=')[1] for item in cookli} #heads['cookie']字符串转换成cookie字典
def cookie_str_2_dict(cookstr):
if not isinstance(cookstr,str):
logging.error('error str param...')
return {} cookstr = cookstr.split(';')
return cookie_list_2_dict(cookstr) #cookie字典转换成key=value列表
def cookie_dict_2_list(cookdi):
if not isinstance(cookdi,dict):
logging.error('error dict param...')
return []
cookli = ["%s=%s" %(key,value) for key,value in cookdi.items()]
return cookli #cookie字典转换成heads['cookie']字符串
def cookie_dict_2_str(cookdi):
if not isinstance(cookdi,dict):
logging.error('error dict param...')
return ""
cookli = cookie_dict_2_list(cookdi)
return ';'.join(cookli) if __name__=='__main__':
cookies = {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}
cookli = cookie_dict_2_list(cookies)
cookstr = cookie_dict_2_str(cookies)
print('cook list',cookli)
print('cook str',cookstr) cookdi1 = cookie_str_2_dict(cookstr)
cookdi2= cookie_list_2_dict(cookli)
print('cook dict 1',cookdi1)
print('cook dict 2',cookdi2)

输出结果:

cook list ['AST=1525005900068b4106e25d4', '___bz=708632|41171989|2b7718|aladin2_freexx', 'platform=H5']
cook str AST=1525005900068b4106e25d4;___bz=708632|41171989|2b7718|aladin2_freexx;platform=H5
cook dict 1 {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}
cook dict 2 {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}

以上。。。

python3 下列表与字典转换的更多相关文章

  1. Python3中列表、字典、元组、集合的看法

    文首,我先强调一下我是一个弱鸡码农,这个随笔是在我学习完Python3中的元组.字典.列表,集合这四种常见数据的数据类型的一些感想,如果有什么不对的地方欢迎大家予以指正.谢谢大家啦 回归正题:这篇随笔 ...

  2. python3 处理列表嵌套字典去重

    def list_dict(dictlist): def function(date): return date['ip'] dictlist_new = [] for list_dict in di ...

  3. python3中列表、元组、字典的增删改查说明详解

    python基础中的列表.元组.字典属于python中内置的序列数据结构.其中序列可以进行的操作包括索引.截取(切片).加.乘.成员检查等. 1.列表 列表(list)是最常用的python数据类型之 ...

  4. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

    一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...

  5. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753 一.列表,元组,字典,集合分别如何增删改查及遍历. 列表 # 列表的 ...

  6. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  7. 【Python3】列表字典集合元组

    1 列表 1.1 定义与索引 在Python中,第一个列表元素的下标为 0通过将索引指定为 -1 可以让Python返回最后一个列表元素 inventory = ['sword', 'armor', ...

  8. (四)Python中的“四大才子”(字符串、列表、字典、集合)

    前戏:在python中把数据序列分为可变(mutable)和不可变(immutable)两种 不可变:string.int.float.tuple 特点:相同对象只是占用一个内存地址,不管有多少个变量 ...

  9. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

随机推荐

  1. [Umbraco] umbraco中如何分页

    分页功能应该说是web开发中最基本的功能了,常规的做法是通过查询sql语句进行分页数据显示.但在umbraco中却不是这样子的.而且通过xpath中的postion来定位.如下代码 <?xml ...

  2. Python内置类型(3)——比较

    python有8种比较运算符:<.<=.>.>=.==.!=.is.is not,它们具有相同的优先级.它们具体的含义如下: 运算符 含义 < 小于 <= 小于或等 ...

  3. Tensflow的equal函数

    一.函数 tf.equal() equal( x, y, name=None ) tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返 ...

  4. python基础学习笔记 - 备忘

    基础中的基础 Python标识符 命名规则: Python标识符区分大小写. 可以包括英文.数字以及下划线,但不能以数字开头. 以下划线开头的标识符是有特殊意义的: a)         以单下划线开 ...

  5. MD5加密之提取文件的MD5特征码

    public static String encodeFile(String path) { try { MessageDigest digester = MessageDigest.getInsta ...

  6. Android 性能优化-启动时间

    adb shell am start -W -n com.xxxx(包名)/xxx.xxxActivity(launch Activity)

  7. Java工程师学习指南 初级篇

    Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  8. 从零开始学 Web 之 jQuery(六)为元素绑定多个相同事件,解绑事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. Kafka实战-实时日志统计流程

    1.概述 在<Kafka实战-简单示例>一文中给大家介绍来Kafka的简单示例,演示了如何编写Kafka的代码去生产数据和消费数据,今天给大家介绍如何去整合一个完整的项目,本篇博客我打算为 ...

  10. Scala函数与函数式编程

    函数是scala的重要组成部分, 本文将探讨scala中函数的应用. scala作为支持函数式编程的语言, scala可以将函数作为对象即所谓"函数是一等公民". 函数定义 sca ...