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))

posted @ 2022-05-04 22:30  repinkply  阅读(79)  评论(0)    收藏  举报