60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
import json
|
|
|
|
from data_define import Record
|
|
|
|
|
|
# 定义一个抽象类用于顶层设计
|
|
class FileReader:
|
|
def read_data(self) -> list[Record]:
|
|
"""督导的每一条数据都转换为Record对象,将他们都封装城list返货"""
|
|
pass
|
|
|
|
|
|
class TextFileReader(FileReader):
|
|
def __init__(self, path):
|
|
self.path = path # 定义成员变量记录文件路径
|
|
|
|
# 复写父类方法
|
|
def read_data(self) -> list[Record]:
|
|
f = open(self.path, "r", encoding="utf-8")
|
|
record_list: list[Record] = []
|
|
for line in f.readlines():
|
|
line = line.strip() # 消除读取数据中每行的\n
|
|
data_list = line.split(",")
|
|
# print(line)
|
|
record = Record(data_list[0], data_list[1], int(data_list[2]), data_list[3])
|
|
record_list.append(record)
|
|
f.close()
|
|
|
|
return record_list
|
|
|
|
|
|
class JsonFileReader(FileReader):
|
|
def __init__(self, path):
|
|
self.path = path # 定义成员变量记录文件路径
|
|
|
|
# 复写父类方法
|
|
def read_data(self) -> list[Record]:
|
|
f = open(self.path, "r", encoding="utf-8")
|
|
record_list: list[Record] = []
|
|
for line in f.readlines():
|
|
data_list = json.loads(line)
|
|
# print(line)
|
|
record = Record(data_list["date"], data_list["order_id"], data_list["money"], data_list["province"])
|
|
record_list.append(record)
|
|
f.close()
|
|
|
|
return record_list
|
|
|
|
|
|
if __name__ == "__main__":
|
|
text_file_reader = TextFileReader("2011年1月销售数据.txt")
|
|
text_file_reader1 = JsonFileReader("2011年2月销售数据JSON.txt")
|
|
|
|
list1 = text_file_reader.read_data()
|
|
list2 = text_file_reader1.read_data()
|
|
|
|
for l in list1:
|
|
print(l)
|
|
for j in list2:
|
|
print(j) |