wordpress观点,windows优化大师怎么样,windows wordpress伪静态,网站备案和域名备案区别序列化与反序列化
JSON、CSV和YAML都是常见的数据序列化和反序列化格式。它们都可以用于将数据从一种表示形式转换为另一种表示形式。
JSON#xff08;JavaScript Object Notation#xff09;是一种轻量级的数据交换格式#xff0c;它使用键值对的形式来表示数据#xff…序列化与反序列化
JSON、CSV和YAML都是常见的数据序列化和反序列化格式。它们都可以用于将数据从一种表示形式转换为另一种表示形式。
JSONJavaScript Object Notation是一种轻量级的数据交换格式它使用键值对的形式来表示数据常用于Web应用程序之间的数据交互。JSON格式的数据可以通过JSON序列化和反序列化来转换为其他编程语言中的对象。
CSVComma-Separated Values是一种简单的文本文件格式它使用逗号作为字段分隔符每行表示一个数据记录。CSV格式的数据可以通过CSV序列化和反序列化来转换为其他编程语言中的对象。
YAMLYAML Ain’t Markup Language是一种可读性高的数据序列化格式它使用缩进和冒号来表示数据的层次结构。YAML格式的数据可以通过YAML序列化和反序列化来转换为其他编程语言中的对象。
在Python中可以使用相关的库来进行序列化和反序列化操作。常见的库有
JSON序列化和反序列化可以使用json库其中的json.dumps()函数用于将对象转换为JSON格式的字符串json.loads()函数用于将JSON格式的字符串转换为对象。CSV序列化和反序列化可以使用csv库其中的csv.writer()函数用于将对象写入CSV文件csv.reader()函数用于从CSV文件中读取对象。YAML序列化和反序列化可以使用pyyaml库其中的yaml.dump()函数用于将对象转换为YAML格式的字符串yaml.load()函数用于将YAML格式的字符串转换为对象。
通过这些库可以方便地进行JSON、CSV和YAML的序列化和反序列化操作以实现数据的转换和交互。
编写一个程序将一个Python字典序列化为JSON字符串并将该字符串保存到文件中然后从文件中读取JSON字符串并反序列化为Python字典。
import json
with open(test1.txt,w) as f:d1 {name:xcz,age:18,sex:male}res json.dump(d1,f)
with open(test1.txt,r) as f:d2 json.load(f)print(d2){name: xcz, age: 18, sex: male}编写一个函数save_to_json接受一个Python对象和一个文件名作为参数将该对象序列化为JSON格式并保存到文件中。
import json
def save_to_json(data, filename):with open(filename, w) as f:json.dump(data, f)print(fData saved to {filename})dic1 {1: a, 2: b, 3: c} # Dictionary
save_to_json(dic1, dic1.json)Data saved to dic1.json编写一个函数load_from_json接受一个文件名作为参数从该文件中读取JSON字符串并反序列化为Python数据。
def load_from_json(filename):with open(filename, r) as f:return json.load(f)load_from_json(dic1.json){1: a, 2: b, 3: c}编写一个程序将一个自定义类的对象序列化为JSON字符串然后将其反序列化为对象。注意自定义类需要实现__dict__和__init__方法。
import jsonclass ABC:def __init__(self, a, b):self.a aself.b ba1 ABC(1, 2)
res json.dumps(a1.__dict__)
print(res)
a2 json.loads(res, object_hooklambda d: ABC(**d))
print(a2.a)
print(a2.b){a: 1, b: 2}
1
2将一个包含嵌套结构如列表、字典的复杂Python字典序列化为JSON字符串然后将其反序列化为原始数据。
my_dict {name: xcz, age: 20, score: [100, 90, 80]}
res json.dumps(my_dict)
print(res)
my_dict2 json.loads(res)
print(my_dict2){name: xcz, age: 20, score: [100, 90, 80]}
{name: xcz, age: 20, score: [100, 90, 80]}编写一个程序使用yaml模块将一个Python字典序列化为YAML格式字符串并将其保存到文件中然后从文件中读取YAML字符串并反序列化为Python字典。
import yamlmy_dict {name: xcz,age: 20,score: {chinese: 100, english: 90, math: 80},
}
with open(my_dict.yaml, w) as f:yaml.safe_dump(my_dict, f, default_flow_styleFalse)
with open(my_dict.yaml, r) as f:my_dict_re yaml.safe_load(f)print(my_dict_re){age: 20, name: xcz, score: {chinese: 100, english: 90, math: 80}}