『Json』常用方法记录

json模块可以把字典结构改写为string然后保存,并可以反向读取字典

pickle模块则可以持久化任意数据结构

但是即使同样是字典数据结构,两个包也是有差别的,

json字典value不支持其他对象只支持python原有的结构,但是json由于是转换为string,所以保存的文件是可以使用文本查看器去读取的

pickle包则支持各种python的对象,但它写入的是二进制文件,并有自己独特的编码方式,所以是不可以查看的,只能使用python载入

方法简介,

dumps是将dict转化成str格式,loads是将str转化成dict格式。

dump和load也是类似的功能,只是与文件操作结合起来了,需要文件流作为参数(句柄,注意一个对应r一个对应w),不常用这两个方法。

dump需要一个类似于文件指针的参数(并不是真的指针,可称之为类文件对象),可以与文件操作结合,也就是说可以将dict转成str然后存入文件中;而dumps直接给的是str,也就是将字典转成str。

json.dumps()

操作将字典转化为str,而json.loads()做反向变换,

它们和保存文件的尾缀.json没有关系:

In [1]: import json
In [2]: a = {'name': 'wang', 'age': 29}
In [3]: b = json.dumps(a)

In [4]: print b, type(b)
{"age": 29, "name": "wang"} <type 'str'>

In [11]: json.loads(b)
Out[11]: {u'age': 29, u'name': u'wang'}
 
In [12]: print type(json.loads(b))
<type 'dict'>

json.dumps()操作默认是ascii格式保存,一般中文字典会加上ensure_ascii=False:

json.dumps(dict(item), ensure_ascii=False)

 json.loads()

将字符串转化为字典文件,示范在下文:

『Scrapy』爬取斗鱼主播头像

posted @ 2017-11-26 10:40  叠加态的猫  阅读(391)  评论(0编辑  收藏  举报