Python 中的 json
模块用于处理 JSON 数据格式,它允许你将 Python 对象转换成 JSON 格式字符串,以及将 JSON 格式字符串解析成 Python 对象。JSON 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它支持的数据结构包括数字、字符串、布尔值、数组(Python 中的列表)和字典。json
模块在处理网络通信、配置文件、数据存储等方面非常有用。
python | JSON |
---|---|
dict | object |
list,tuple | array |
str,unicode | string |
int,long,float | number |
True | true |
False | false |
None | null |
从son转为python的言方数据格式为:
python | JSON |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int,long |
number (real) | float |
true | True |
false | False |
null | None |
类型 | 定义 | > | 方法 | > | 定义 | 类型 |
---|---|---|---|---|---|---|
python的str | jsonData = '{"a":1,"b":2}' |
> | data_dict = json.loads(jsonData) |
> | data_dict = {'a': 1, 'b': 2} |
python的dict |
JSON文件 | with open("jdata.json",'r') as load_f: |
> | load_dict = json.load(load_f) |
> | data_dict = {'a': 1, 'b': 2} |
python的dict |
python的dict | data = [{'a': 1, 'b': 2}] |
> | data_str = json.dumps(data) |
> | data_str = '[{'a': 1, 'b': 2}]' |
JSON/python的str |
python的dict | data = { 'a': 1, 'b': 2} |
> | json.dump(data,f,indent) |
> | [{'a': 1, 'b': 2}] |
JSON文件 |
import json
import json
## 注意!逗号不可以写多
## 注意!不能用单引号要双引号
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
data_dict = json.loads(jsonData)
print(data_dict)
with open("jdata.json",'r') as load_f:
data_dict = json.load(load_f)
可以看见已经把文件名为jdata.json的数据读取到python里
更多有关open打开文件夹的更多可以查看自带方法 - open() - 读写文件
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data_str = json.dumps(data,ensure_ascii=False)
## ensure_ascii=False # 'u111'转成中文
print(type(data_str)
print(data_str)
<class 'str'>
[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
可以看见data_str的字符类型已经变成str格式
import json
data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }
f = open('jdata.json','w',encoding='utf-8')
json.dump(data,f,ensure_ascii=False)
## ensure_ascii=False # 'u111'转成中文
可以看见生成的jdata.json已经生成,但是没有换行、缩进格式
'''
{
"xiaojun": "123456",
"xiaohei": "7891",
"lrx": "hailong",
"tanailing": "111111"
}
'''
import json
data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }
f = open('jdata.json','w',encoding='utf-8')
json.dump(data,f,ensure_ascii=False)
## ensure_ascii=False # 'u111'转成中文
可以看见生成的jdata.json与上一个例子增加了换行、缩进格式