json中加s使用
import json
data = {
"name": 'shuai',
"age": 18,
"addr": '张家界'
}
# {'name': 'shuai', 'age': 18, 'addr': '张家界'} <class 'dict'>
print(data, type(data))
# 序列化,dumps把对象转为str
tmp = json.dumps(data)
# {"name": "shuai", "age": 18, "addr": "\u5f20\u5bb6\u754c"} <class 'str'>
print(tmp, type(tmp))
parse = json.loads(tmp)
# {'name': 'shuai', 'age': 18, 'addr': '张家界'} <class 'dict'>
print(parse, type(parse))
json中不带s的使用: 主要可以用来操作文件。
# 将json的数据写入到文件中过去。
with open('data.json', 'w') as f:
print(json.dump(data, f))
# 将文件中的数据读取出来。
with open('data.json', 'r') as f:
tmp = json.load(f)
# {'name': 'nicie', 'age': 18, 'addr': '张家界'} <class 'dict'>
print(tmp, type(tmp))
# 文件内容会丢失
pickle的功能和json差不多(但是能够进行解析对象等python中的所有数据类型)
import json
import pickle
class Person():
def __init__(self, name):
self.name = name
def __str__(self):
return self.name + "nibi"
# 报错 Object of type 'type' is not JSON serializable
tmp = json.dumps(Person)
print(tmp)
tmp2 = pickle.dumps(Person)
print(tmp2)
tmp3 = pickle.loads(tmp2)
print(tmp3('nice'))
# b'\x80\x03c__main__\nPerson\nq\x00.'
# nicenibi