2.6 - python数据传输:json、pickle和xml

2.6.1 python数据传输

  在机器学习中,数据集的标签经常存储到为 json文件或pickle文件。

  将python中的结构转换为json格式的字符串,称为:序列化。将json格式的字符串还原为python数据结构,称为:反序列化

  1)json

import json

info = {'name': 'Deny', 'age': 12, 'address':'guangzhou'}

# 序列化
info_str = json.dumps(info)
print(type(info_str), info_str)

# 反序列化
py_data = json.loads(info_str)
print(type(py_data), py_data)

# 序列化并将序列化后的字符串存储到文件中
with open(r'./Dir1/info_str.json', mode='w') as file:
    json.dump(info, file)

# 读取文件中的字符串并反序列化
with open(r'./Dir1/info_str.json') as file:
    print(json.load(file))

  json键值对的键:永远是str类型。因此,原始python数据在经过序列化之后,其键值对的键会被强制转化为字符串类型!!!

  而pickle,是二进制存储,不会对原始的python数据有任何的改动。

  2)pickle

  pickle是一个Python专用的二进制序列化格式,不可直观阅读。

import pickle

info = {'name': 'Deny', 'age': 12, 'address': 'guangzhou', 123: 456}

# 序列化
pickle_info = pickle.dumps(info)
print(type(pickle_info), pickle_info)

# 反序列化
string = pickle.loads(pickle_info)
print(type(string), string)

# 序列化并存入到文件
with open(r'./Dir1/info.pickle', mode='wb') as file:
    pickle.dump(info, file)

# 从文件中取出二进制文件并还原
with open(r'./Dir1/info.pickle', mode='rb') as file:
    print(pickle.load(file))

综上:
  序列化:dumps=》序列化并返回json字符串或二进制字符串  dump=》序列化并将结果写入到文件

  反序列化:loads=》将json字符串或二进制字符串反序列化并返回  load=》从文件中读取内容并将其反序列化

 

2.6.2 xml

  标签树

 

posted @ 2024-01-31 11:05  橘子葡萄火龙果  阅读(5)  评论(0编辑  收藏  举报