python json pickle 模块
json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
在python中,json的数据格式与字典很像,json的引号为双引号,不存在元组,集合类型,如果在序列化时有元组,集合类型会被转成列表形式
json序列化操作
import json dic = {'a':1,'b':'yyf','c':['1',2],'d':('x','y')} jsn = json.dumps(dic) print(jsn) json.dump(dic,open('01.txt','w',encoding='utf-8'))
{"a": 1, "b": "yyf", "c": ["1", 2], "d": ["x", "y"]}
json反序列化操作
with open('01.txt','r',encoding='utf-8') as f: str1 = f.read() print(json.loads(str1)) dic = json.load(open('01.txt','r',encoding='utf-8')) print(dic)
{'a': 1, 'b': 'yyf', 'c': ['1', 2], 'd': ['x', 'y']}
pickle
pickle是python中的特有类型,用于python的数据类型间进行转换
支持python中的所有原生类型:布尔值,整数,浮点数,复数,字符串,字节,None
支持由任何原生类型组成的列表,元组,字典和集合
支持函数,类,类的实例
pickle序列化
import pickle dic = {'a':'b'} f = open('01.txt','wb') pickle.dump(dic,f) f.close() res = pickle.dumps(dic) print(res)
b'\x80\x03}q\x00X\x01\x00\x00\x00aq\x01X\x01\x00\x00\x00bq\x02s.'
pickle反序列化
with open('01.txt','rb') as f: str = f.read() lst = pickle.loads(str) res = pickle.load(f) print(res) print(lst)
{'a': 'b'}
{'a': 'b'}
