python3中使用json
一.什么是json
1.JavaScript对象表示法(JavaScript Object Notation),Json是轻量级的文本数据交换格式。
2.Json是独立于语言的,很多语言都可以使用Json进行文本数据解析,比如C++,Python。
3.Json具有自我描述性,更易解析,Json比XML更小、更快、更易解析。
二、Json 字符串必须用双引号来表示
1.json_str = '{"name":"qiyue","age":18}',json_str为一个符合json格式的字符串。json_str对应json中为object对象类型。
2.通过以下python demo 我们可以看出python语言是把json_str转化为一个python_student的字典。而在不同的编程语言中,可能不一定转化为的是字典。
反序列化,demo1:
import json
json_str = '{"name":"qiyue","age":18}' #对应json中为object对象类型
python_student = json.loads(json_str)
print(type(python_student))
print(python_student)
print(python_student['name'])
print(python_student['age'])
反序列化,demo2:
注意 不能为 "isOnly":False,必须这样写:"isOnly":false,因为在json中是false来表示的。
import json
json_str = '[{"name":"qiyue","age":18,"isOnly":false},{"name":"qiyue","age":18}]' #对应json中为array类型
python_student = json.loads(json_str)
print(type(python_student)) # <class 'list'>
print(python_student)
序列化demo1:
import json
student = [
{'name':'qiyue','age':18,'isFlag':False},
{'name':'qiyue1','age':19}
]
print(type(student))
json_str = json.dumps(student)
print(type(json_str))
print(json_str)
Json 、Json对象、Json字符串的区别


python3 中json标准库的作用
1.使用json字符串生成python对象 (load)
2.由python对象格式化成为json对象 (dump)
数据类型转换

使用方法如下:

#从python对象,格式化成为一个json string
demo1:
json.dumps(obj)
import json
person={"name":"Sniper","age":30,"tel":["1770000111","13509876543"],"isonly":True}
print(person) #注意这行输入是一个字典,都是单引号
jsonStr=json.dumps(person) #从python对象,格式化一个json string
print(jsonStr) #注意这行输出是一个字符串,都是双引号
print(type(jsonStr)) #<class 'str'>
demo2:
json.dump(obj,fp)
import json person={"name":"Sniper","age":30,"tel":["1770000111","13509876543"],"isonly":True} print(person) #注意这行输入是一个字典,都是单引号 jsonStr = json.dumps(person,indent=4,sort_keys=False) #indent为缩进4个字符 ,sort_keys为以key值进行排序 print(jsonStr) json.dump(person,open('data.json','w'),indent=4,sort_keys=True)生成data.json文件,文件内容如下所示:
{ "age": 30, "isonly": true, "name": "Sniper", "tel": [ "1770000111", "13509876543" ] }
#将json string 转化成 python对象
json.loads(s)
import json
person={"name":"Sniper","age":30,"tel":["1770000111","13509876543"],"isonly":True}
#print(person) #注意这行输入是一个字典,都是单引号
jsonStr = json.dumps(person,indent=4,sort_keys=False) #indent为缩进4个字符 ,sort_keys为以key值进行排序
#print(jsonStr)
json.dump(person,open('data.json','w'),indent=4,sort_keys=True)
#json string 转化成 python对象
pythonObj = json.loads(jsonStr)
print(pythonObj)
print(type(pythonObj))
import json
jsonStr='["A",1,"age",{"f":true,"l":"sniper"}]'
#json string 转化成 python对象
pythonObj = json.loads(jsonStr)
print(pythonObj)
print(type(pythonObj))
json.loads(fp)
新建一个employees.json的文件,里面的内容为:
{
"employees": [
{"firstName": "john","lastName": "Doe"},
{"firstName": "Anna","lastName": "Smith"},
{"firstName": "Peter","lastName": "Jones"}
]
}
import json
#json string 转化成 python对象
pythonObj = json.load(open('employees.json','r'))
print(pythonObj)
print(type(pythonObj))

浙公网安备 33010602011771号