python 常用模块 json

博客要坚持写,不然人很容易懒惰掉的,废话少说开始写博客了,每天进不一点点也是一种进步,相对不动也是一种退步。

# json 模块 

json: 用于字符串 和 python数据类型间进行转换 ,是常用的序列化模块之一,什么叫序列化呢  

序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes

json 模块的功能:dumps、dump、loads、load

文件存储是将内存里面的数据转变成字符串,非字符串类型的数据是不能直接存储的

# 示例说明,直接存储文件

#coding:utf-8
import json
f1 = open('test1.txt', mode='w') roles = { 'role': [ {'name': 'bob', 'job': 'IT'}, {'name': 'merry', 'job': 'Teacher'} ] } f1.write(roles) # error TypeError: write() argument must be str, not dict # 直接执行回报一下错误 f1.write(roles) # error TypeError: write() argument must be str, not dict TypeError: write() argument must be str, not dict
# 遇到这种错误 可以使用str 方法, 将字典转换为str 
f1 = open('test1.txt', mode='w')
roles = {
    'role': [
        {'name': 'bob', 'job': 'IT'},
        {'name': 'merry', 'job': 'Teacher'}
    ]
}

# 使用str 方法,写入

 f1.write(str(roles))

 f1.close()
执行效果如下

 

# 读取文件

# 读取的时候使用 eval
f1 = open('test1.txt', mode='r')
read_str = f1.read()
p_read = eval(read_str)
print(p_read['role'][1], type(p_read))

执行效果如下

 

# 使用 json 模块存取文件 ,使用dumps 和loads

import json

roles = {
    'role': [
        {'name': 'bob', 'job': 'IT'},
        {'name': 'merry', 'job': 'Teacher'}
    ]
}
# 写入文件
json_str = json.dumps(roles)
# 读取文件
json_dict = json.loads(json_str)

print(json_dict, type(json_dict))

执行效果如下

 

# 使用 json 模块存取文件 ,使用dump 和load 

# 使用json 模块, 存文件 dump 和 load

 f5 = open('test1.json', 'w')
 son_str2 = json.dump(roles, f5)

 查看存取的文件

 读取文件

f6 = open('test1.json', 'r')
new_dict2 = json.load(f6)
print(new_dict2, type(new_dict2))

 

执行结果如下

 


 

posted @ 2018-05-22 20:38  水滴石川  阅读(119)  评论(0)    收藏  举报