Python基础-----json模块
Posted Meanwey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础-----json模块相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import json
‘‘‘
我们把对象(变量)从内存中变成可存储或传输的过程称之为[序列化],在Python中叫pickling,
在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。
‘‘‘
‘‘‘
1 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]‘
###################################################################################
‘‘‘
2 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]
‘‘‘
###################################################################################
‘‘‘用于文件操作‘‘‘
‘‘‘
3 json.dump(变量名,文件名)
用于将传入的变量表示的数据类型都变为字符串类型
并且回将字符串内的‘‘变为"",并写入到指定的文件中,
无需执行文件的write()方法。
‘‘‘
with open(‘test‘,‘w‘) as f:
json.dump(dic,f) #----> 等同于dic_str = json.dumps(dic) f.write(dic_str)
###################################################################################
‘‘‘
4 json.load(文件名)
用于直接将文件中字符串类型都转换为原类型,并读取出来,
无需执行文件的read()方法。
‘‘‘
with open(‘test‘,‘r‘) as f:
json_read = json.load(f) #----> 等同于dic_str = json.dumps(dic) f.write(dic_str)
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))
#conclusion:
# 无论数据是怎样创建的,只要满足json格式,就可以json.loads出来,不一定非要dumps的数据才能loads
‘‘‘
以上是关于Python基础-----json模块的主要内容,如果未能解决你的问题,请参考以下文章
Python基础(12)_python模块之sys模块logging模块序列化json模块pickle模块shelve模块
Python基础第十三天——sys模块logging模块json模块pickle模块