python解析.json文件--json模块(内置)

第一part:json文件的介绍


1)JSON(JavaScript Object Notation) 的含义:

是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写。
json是一种通用的数据类型,一般情况下接口返回的数据类型都是json,格式与字典类似,形式也是{key:value},但是json是字符串
字符串不能用key、value来取值,所以要先将其转换为字典。
2)JSON的内容格式:每个参数之间,也是使用逗号隔开,但是最后一个参数不需要加逗号


 第二part:python操作json文件的四个方法


 python操作json文件,需要导入json模块,json为内置模块,其中主要使用如下四个方法进行操作:

方法 描述
json.dumps() 将 Python 对象编码成 JSON 字符串
json.loads() 将已编码的 JSON 字符串解码为 Python 对象
json.dump() 将Python内置类型序列化为json对象后写入文件
json.load() 读取文件中json形式的字符串元素转化为Python类型

 总结:不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。


第三part:python读取json文件的数据,主要使用json.loads()和json.load()两个方法:


 1)json.loads()方法的详细使用

import json
with open ("data2.json") as fp:
result=fp.read()
print("直接读取json文件的内容的类型为:",type(result))
print("将已编码的 JSON字符串解码为 Python对象的值为:",json.loads(result))
print('将json字符串转换为dict:',type(json.loads(result)))

执行结果,如下:

2)json.load()方法的详细使用

import json
with open("data2.json") as fp:
#load获取的数据是字典类型而非字符串;

result=json.load(fp)
print(type(result))
print(result)

执行结果,如下:


 第四part:python写入数据到json文件,主要使用json.dumps()和json.dump()两个方法:


 1)json.dumps()方法的详细使用

json.dumps()方法与json.loads()方法相对应,将python类型转换为json类型

import json
wri={'username': 'zhangsan', 'age': 22, 'sex': 'male', 'number': 142177753456}
with open ('data2.json','w') as fp:
result=json.dumps(wri)
print(result,type(result))
fp.write(result)

执行结果如下:

 

2)json.dump()方法的详细使用

json.dump()方法与json.load()方法相对应,将python类型转换为json类型

import json
wri={'username': 'wangwu', 'age': 22, 'sex': 'male', 'number': 142177753456}
with open ('data2.json','w') as fp:
# 现在已经以json格式写进去,具有一个参数indent可以很好的显式json的格式,该参数即可以传入int类型也可以是str类型
json.dump(wri,fp,indent=" ",ensure_ascii=False)
执行结果如下:



 第五part:python数据类型与json数据类型的映射关系


Python----------->Json

Json ----------->Json

dict

object

object

dict

list, tuple

array

array

list

str, unicode

string

string

unicode

int, long, float

number

number (int)

int, long

True

true

number (real)

float

False

false

true

True

None

null

false

False

 
原文地址:https://www.cnblogs.com/smilecindy/p/13780824.html