文章目录
- 1、什么是JSON
- 2、JSON标准库的作用
- 3、python和json数据类型转换
- 4、json使用
-
- [4.1、从python 对象格式化一个Json String](#4.1、从python 对象格式化一个Json String)
- 4.2、写入`.json`文件
- [4.3、Json String 转化成python 对象](#4.3、Json String 转化成python 对象)
- 4.4、读取`.json`文件
1、什么是JSON
- json全名叫javaScript 对象表示法(J avaS cript O bject Notation)
- JSON是轻量级的文本数据交换格式
- JSON独立语言
- json具有自我描述性,更易理解
- json比xml更小、更快,更易解析
2、JSON标准库的作用
- 使用json字符串生成python对象(load)
- 由python对象格式化称为json字符串(dump)
3、python和json数据类型转换
将数据从python 转换到json格式,数据类型上会有变化
python | json |
---|---|
dict | object |
list,tuple | array |
str | string |
int,float&float-derived Enums | number |
True | true |
False | false |
None | null |
4、json使用
json模块使用简单,绝大多数场合下,我们只需要使用下面四个方法就可以了
- json.dump(obj,fp)将python 数据类型转换并保存到json格式的文件内
- json.dumps(obj)将python数据类型转换为json格式的字符串
- json.load(fp)从json格式的文件中读取数据并转换程python类型
- json.loads(s)将json格式的字符串转化为python的类型
4.1、从python 对象格式化一个Json String
python
person = {"name":"ZS","age":30,"tel":['17788866677','19988866645'],"isonly":True}
print(type(person))
print(person)
jsonStr = json.dumps(person,indent=4,sort_keys=True)#对key进行排序
print(type(jsonStr))
print(jsonStr)
【output】
bash
<class 'dict'>
{'name': 'ZS', 'age': 30, 'tel': ['17788866677', '19988866645'], 'isonly': True}
<class 'str'>
{
"age": 30,
"isonly": true,
"name": "ZS",
"tel": [
"17788866677",
"19988866645"
]
}
4.2、写入.json
文件
bash
with open('data.json','w') as fp:
json.dump(person,fp,indent=4)
4.3、Json String 转化成python 对象
python
print(type(pythonObj))
print(pythonObj)
s = '["a",1,"AGE",{"F":true,"l":"na"}]'
pythonObj = json.loads(s)
print(type(pythonObj))
print(pythonObj)
【output】
bash
<class 'dict'>
{'age': 30, 'isonly': True, 'name': 'ZS', 'tel': ['17788866677', '19988866645']}
<class 'list'>
['a', 1, 'AGE', {'F': True, 'l': 'na'}]
4.4、读取.json
文件
python
with open('data.json','r') as fp:
pyObj = json.load(fp)
print(pyObj)