json&pickle序列化
2021-07-01 06:04
标签:iter 简单的 function line pytho type main 进制 info 我们需要将内存中的数据进行序列化,即写入文件中时,写入的类型只能是字符串或者二进制类型。但是如果我们想要将复杂一些的数据类型,如:列表、字典或者函数之类的同样进行序列化,我们就要用到 json或者pickle。 dumps把数据类型转换成字符串 loads把字符串转换成数据类型 dump把数据类型转换成字符串并存储在文件中 load把文件打开从字符串转换成数据类型 1、json只能处理简单的数据类型,例如:字典、列表、字符串等,不能处理函数等复杂的数据类型。 2、json是所有语言通用的,所有语言都支持json,如果我们需要python跟其他语言进行数据交互,那么就用json格式 pickle的用法和上面的相同,但是pickle序列化后的数据类型是二进制的,并且pickle只能在python中是使用。 总结: json&pickle序列化 标签:iter 简单的 function line pytho type main 进制 info 原文地址:http://www.cnblogs.com/bigberg/p/7133747.html一、用途
二、json序列化
1、dumps序列化和loads反序列化
import json
info = {
‘name‘: ‘The Count of Monte Cristo‘,
‘type‘: ‘Movie‘
}
data = json.dumps(info)
print(data)
print(type(data))
# 输出
{"name": "The Count of Monte Cristo", "type": "Movie"}
import json
get_info = json.loads(data)
print(get_info[‘name‘])
print(get_info)
print(type(get_info))
#输出
The Count of Monte Cristo
{‘name‘: ‘The Count of Monte Cristo‘, ‘type‘: ‘Movie‘}
2.dump序列化和load反序列化
import json
info = {
‘name‘: ‘The Count of Monte Cristo‘,
‘type‘: ‘Movie‘
}
with open("test.txt", "w", encoding="utf-8") as f:
json.dump(info, f) # 第一个参数是内存中的数据对象,第二个参数是文件句柄
#写入文件中的内容
{"name": "The Count of Monte Cristo", "type": "Movie"}
import json
with open("test.txt", "r", encoding="utf-8") as f:
data_from_file = json.load(f)
print(data_from_file[‘name‘])
print(data_from_file)
print(type(data_from_file))
#输出
The Count of Monte Cristo
{‘name‘: ‘The Count of Monte Cristo‘, ‘type‘: ‘Movie‘}
3.json序列化一个函数
import json
def test(name):
print("hello,{}".format(name))
info = {
‘name‘: ‘The Count of Monte Cristo‘,
‘type‘: ‘Movie‘,
‘func‘: test
}
data = json.dumps(info)
#输出
File "G:/python/untitled/study6/json&pickle模块.py", line 22, in
三、pickle序列化
1.dumps && loads
import pickle
def test(name):
print("hello,{}".format(name))
info = {
‘name‘: ‘The Count of Monte Cristo‘,
‘type‘: ‘Movie‘,
‘func‘: test
}
data = pickle.dumps(info)
print(data)
print(type(data))
#输出
b‘\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x19\x00\x00\x00The Count of Monte Cristoq\x02X\x04\x00\x00\x00typeq\x03X\x05\x00\x00\x00Movieq\x04X\x04\x00\x00\x00funcq\x05c__main__\ntest\nq\x06u.‘
import pickle
get_data = pickle.loads(data)
get_data[‘func‘](‘cat‘)
print(get_data)
#输出
hello,cat
{‘name‘: ‘The Count of Monte Cristo‘, ‘type‘: ‘Movie‘, ‘func‘:
2. dump && load
import pickle
def test(name):
print("hello,{}".format(name))
info = {
‘name‘: ‘The Count of Monte Cristo‘,
‘type‘: ‘Movie‘,
‘func‘: test
}
with open(‘test.txt‘, ‘wb‘) as f:
pickle.dump(info, f)
# 写入test.txt文件中的内容
?}q (X typeqX MovieqX funcqc__main__
test
qX nameqX The Count of Monte Cristoqu.
import pickle
with open(‘test.txt‘, ‘rb‘) as f:
get_data = pickle.load(f)
print(get_data)
# 输出
{‘name‘: ‘The Count of Monte Cristo‘, ‘func‘: