Python的json模块及使用

import json

# json 是 js 下的内容各个语言交流的数据交换方式

# 字典
dict1 = {'name': 'joe', 'age': '18'}

data = json.dumps(dict1)  # 加载进去 序列化 数据可以看到

f = open('json_text', 'w')
f.write(data)
f.close()

# 函数 不可json序列化 可以使用pickle 下面序列化时会报错
# def foo():
#     print('ok')
#
#
# data = json.dumps(foo)
#
# f = open('json_text', 'w')
# f.write(data)
# f.close()

要点:

  •  json.dumps(dict) 将字典加载,进行序列化
  • open('a.txt','w') 写入文件

import json

f = open('json_text', 'r')

data = f.read()

data = json.loads(data)  # 将数据下载回来 成字典

print(data['name'])
print(data)

要点:

  • json.loads(data) 将数据下载,成字典 
  • data['name']  可以以字典方式操作

# dumps() 与 dump() 对比 dump 更简洁

dict2 = {'name': 'smith', 'age': '108'}
f2 = open('json_text2', 'w')

# data = json.dumps(dict2)
# f.write(data)
json.dump(dict2, f2)  # 本句等价于 上面两行被注释掉的

f.close()

dumps() 与 dump() 函数比较

要点:

json.dump(dict,fd) 等价于 data = json.dumps(dict) , fd.write(date)  其中fd为文件句柄


# loads() 与 load() 函数的区别

f2 = open('json_text2', 'r')

# data = f.read()
# data = json.loads(data)
data = json.load(f2)  # load() 函数直接 简化了上面两行数据

print(data['name'])
print(data)



loads() 与 load() 函数比较

要点:

json.load(fd) 等价于 data = f.read() , data = json.loads(data) 


 

 

上一篇:python序列化与反序列


下一篇:python 使用json.dumps() 的indent 参数,获得漂亮的格式化字符串后输出