1.功能简介:

  1. python与其他语言进行联合的项目开发时,往往需要进行"数据交换",但是不同语言语法规则不一样,要想进行交流,需要将数据统一转化为json格式的数据.<br /> python数据转为json数据这个过程,称为:序列化<br /> json格式数据转化为python数据,称为:反序列化

2.json格式数据样式

  1. json格式数据是字符串,可以大致理解为python数据变成字符串 ```python

    json格式数据往往是字符串

python格式:

[ {“id”: 1, “name”: “武沛齐”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}, ]

json格式:

‘[{“id”: 1, “name”: “\u6b66\u6c9b\u9f50”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}]’

  1. 2. python格式数据序列化后,有些地方有些差异
  2. ```python
  3. data = [
  4. {"id": 1, "name": "武沛齐", "age": 18},
  5. {"id": 2, "name": "alex", "age": 18},
  6. ('wupeiqi',123),
  7. ]
  8. # JSON格式
  9. value = '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18},["wupeiqi",123]]'
  10. # 由于json中没有元组,所以元组会转化为列表
  11. # 并且反向转化回来后,也会重新变成列表

3.语法命令

  1. 序列化与反序列化 ```python

    知识点1:序列化 json.dumps(data)

    import json

data = [ {“id”: 1, “name”: “武沛齐”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}, ]

result = json.dumps(data) print(result)

‘[{“id”: 1, “name”: “\u6b66\u6c9b\u9f50”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}]’

知识点2:反序列化 json.loads(value)

data_string = ‘[{“id”: 1, “name”: “武沛齐”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}]’

data_list = json.loads(data_string)

print(data_list)

[{“id”: 1, “name”: “武沛齐”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}]

  1. 2. 序列化过程中汉字内容为unicode码,这个时候可以转化为汉字
  2. ```python
  3. # 知识点3:序列化中汉字字符串保留 json.dumps(data,ensure_ascii=False)
  4. import json
  5. data = [
  6. {"id": 1, "name": "武沛齐", "age": 18},
  7. {"id": 2, "name": "alex", "age": 18},
  8. ]
  9. res = json.dumps(data, ensure_ascii=False)
  10. print(res) # '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
  1. 序列化顺手写入文件,与从文件中反序列化读取 ```python

    知识点4:序列化过程中顺手写入文件 josn.dump(data,file_obj)

import json

data = [ {“id”: 1, “name”: “武沛齐”, “age”: 18}, {“id”: 2, “name”: “alex”, “age”: 18}, ]

with open(‘xxx.json’, mode=’w’, encoding=’utf-8’) as file_object: json.dump(data, file_object)

知识点5:反序列化过程中顺手读取文件 json.load(file_obj)

with open(‘xxx.json’, mode=’w’, encoding=’utf-8’) as file_object: json.load(file_object) ```