Python基础-----json模块

我们把对象(变量)从内存中变成可存储或传输的过程称之为[序列化],在Python中叫pickling,
在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

json.dumps(变量名)

  • 用于将传入的变量表示的数据类型都变为字符串类型
    并且回将字符串内的单引号''变为双引号""
dic = {'name':'alex'}
dic_str = json.dumps(dic)   #----> '{"name":"alex"}'

num = 8
num_str = json.dumps(num)   #----> '8'

st = 'hello'
st_str = json.dumps(st)     #----> '"hello"'

li = [11,22]
li_str = json.dumps(li)     #----> '[11,22]'

json.loads(变量名)

  • 用于将传入的变量表示的字符串类型都转换为原类型
    并且返回原样。
 dic = json.loads(dic_str)  #----> {'name':'alex'}

json 和 python数据对应

import json
x="[null,true,false,1]"
print(json.loads(x))    #-----> [None, True, False, 1]

用于文件操作

json.dump(变量名,文件名)

  • 用于将传入的变量表示的数据类型都变为字符串类型
    并且会将字符串内的''变为"",并写入到指定的文件中,
    无需执行文件的write()方法。
with open('test','w') as f:
   json.dump(dic,f)        #----> 等同于dic_str = json.dumps(dic)  
                                       #f.write(dic_str)

json.load(文件名)

  • 用于直接将文件中字符串类型都转换为原类型,并读取出来,
    无需执行文件的read()方法。
with open('test','r') as f:
   json_read = json.load(f)        #----> 等同于   dic=f. read()
                                   #             dic_str = json.loads(dic)
print(json_read)

注意json.dumps()json.loads()不一定非要一起才能使用
如果文件中的字符串类型,满足json要求,则可以直接使用
json.loads()将文件读取出来

import json
#dct="{'1':111}"#json 不认单引号
#dct=str({"1":111})#报错,因为生成的数据还是单引号:{'one': 1}

dct='{"1":"111"}'
print(json.loads(dct))

你可能感兴趣的:(Python基础-----json模块)