背景知识:str()& repr()函数的区别
https://blog.csdn.net/u013961718/article/details/51100464
字符串序列化与反序列化区别:
https://www.cnblogs.com/diaosicai/p/6419833.html
- 在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象。在python的标准库中,专门提供了json库与pickle库来处理这部分。
import json
data = {
'id': 1,
'name': 'test1',
'age': '1'
}
json_str1 = json.dumps(data)
print(type(json_str1), '\t', repr(json_str1))
'{"id": 1, "name": "test1", "age": "1"}'
(2)情况二:
import json
# python列表(字典)类型转换为json字符串
data1 = [{
"id": 1,
"name": "test1",
"age": "1"
}, {
"id": 2,
"name": "test2",
"age": "2"
}]
json_str1 = json.dumps(data1) //转化为json字符串
print("数据类型:", type(data1), repr(data1))
print("json字符串:", repr(json_str1))
最终结果:
数据类型: [{'id': 1, 'name': 'test1', 'age': '1'}, {'id': 2, 'name': 'test2', 'age': '2'}]
json字符串: '[{"id": 1, "name": "test1", "age": "1"}, {"id": 2, "name": "test2", "age": "2"}]'
import json
data1 = '''[{
"id": 1,
"name": "test1",
"age": "1"
}, {
"id": 2,
"name": "test2",
"age": "2"
}]'''
# # 将json字符串转换为python列表
data2 = json.loads(data1)
print("data2['name']: ", data2[0]["name"])
print("data2['name']: ", data2[1]["name"])
最终结果:
data2['name']: test1
data2['name']: test2
ps://json.loads()里面必须是字符串,如果是列表会报错
**TypeError: the JSON object must be str, bytes or bytearray, not 'list'**
####(1)excel里面,如果保存的字典如下面所示:
{‘name’:‘alien’ , ‘age’:18}
如上的字典,从excel读取完之后,是不能转换成字典dict的
花括号里面需要使用双引号“”,然后再使用json.loads(目标数据),这样才能转化成字典类型,否者不行
# coding: utf-8
import json
list = ['Apple', 'Huawei', 'selenium', 'java', 'python']
# 写入文件,alien.txt文件最初是空白文件
with open('/Users/test/Python_AutoTest/utilts/alien.txt', 'w') as f:
json.dump(list, f)
# 读取文件
with open('/Users/test/Python_AutoTest/utilts/alien.txt', 'r') as f:
print(f.read())
最终结果
["Apple", "Huawei", "selenium", "java", "python"]
####(2)json.load()读取文件信息
# coding: utf-8
import json
list = ['Apple', 'Huawei', 'selenium', 'java', 'python']
# 读取文件
with open('/Users/test/Python_AutoTest/utilts/alien.txt', 'r') as f:
result = json.load(f)
print(result)
最终结果:
['Apple', 'Huawei', 'selenium', 'java', 'python']