JSON对象描述:
{ "motor": { "left": 100, "right": 20 }, "servo": { "servo_1": 90 } }
JSON对象语法说明:
JSON数组描述:
{ "employees": [ { "firstName": "Bill", "lastName": "Gates" }, { "firstName": "George", "lastName": "Bush" }, { "firstName": "Thomas", "lastName": "Carter" } ] }
JSON数组语法说明:
重点:
该模块允许Python对象和JSON数据格式之间的转换
>>> import ujson >>> help(ujson) object <module 'ujson'> is of type module __name__ -- ujson dump -- <function> dumps -- <function> load -- <function> loads -- <function>
这里有4个函数:
dump
dumps
(将Python的字典数据转换成json字符,数据的最外面都添加一层""变为字符串,这也是数据的序列化
步骤)load
loads
(将json字符串数据转换为字典或列表(去掉外面一层""),这个也是反序列化
的步骤).dump()和.load()主要用来读写json文件函数
例子1:
# 导入模块 import ujson # 构造字典 data = { 'id': 1, 'name': 'test1', 'age': '1' } json_str1 = ujson.dumps(data) print(type(json_str1),json_str1)
打印结果:
>>> %Run -c $EDITOR_CONTENT <class 'str'> {"name": "test1", "id": 1, "age": "1"} >>>
例子2:
# 导入模块 import ujson # 构造列表 data1 = [{ "id": 1, "name": "test1", "age": "1" }, { "id": 2, "name": "test2", "age": "2" }] # python列表类型转换为json字符串 json_str2 = ujson.dumps(data1) print(type(json_str2),json_str2)
打印结果:
>>> %Run -c $EDITOR_CONTENT <class 'str'> [{"name": "test1", "id": 1, "age": "1"}, {"name": "test2", "id": 2, "age": "2"}] >>>
例子:
# 导入模块 import ujson import os list = ['Apple', 'Huawei', 'selenium', 'java', 'python'] # 写入文件,json.txt文件最初是空白文件 with open('json.txt', 'w') as f: ujson.dump(list, f) # 读取文件 with open('json.txt', 'r') as f: print(f.read())
打印结果:
>>> %Run -c $EDITOR_CONTENT ["Apple", "Huawei", "selenium", "java", "python"] >>>
例子1:
# 导入模块 import ujson # 构造字典 data = '''[{ "id": 1, "name": "test1", "age": "1" }, { "id": 2, "name": "test2", "age": "2" }]''' # json字符串转为python列表类型 json_str1 = ujson.loads(data) print(type(json_str1),json_str1) print(json_str1[0]['id']) print(json_str1[0]['name']) print(json_str1[0]['age'])
打印结果:
>>> %Run -c $EDITOR_CONTENT <class 'list'> [{'id': 1, 'name': 'test1', 'age': '1'}, {'id': 2, 'name': 'test2', 'age': '2'}] 1 test1 1 >>>
例子2:
# 导入模块 import ujson # 构造字典 data = '''{ "id": 1, "name": "test1", "age": "1" }''' # json字符串转为python列表类型 json_str1 = ujson.loads(data) print(type(json_str1),json_str1) print(json_str1['id']) print(json_str1['name']) print(json_str1['age'])
打印结果:
>>> %Run -c $EDITOR_CONTENT <class 'dict'> {'id': 1, 'name': 'test1', 'age': '1'} 1 test1 1 >>>
例子:
# 导入模块 import ujson import os # 读取文件 with open('json.txt', 'r') as f: result = ujson.load(f) print(result)
打印结果:
>>> %Run -c $EDITOR_CONTENT ['Apple', 'Huawei', 'selenium', 'java', 'python'] >>>
本章内容相对比较简单易懂,不需要花费太多时间,希望各位同学可以拷贝一下源码去玩玩。