python对象转json
程序将python的对象转为json格式。
train_data_cor.txt文件包含以下内容:
james.txt 2-34,3:21,2,34,2.45,3.01,2:01,2:01,3:10,2-22
sarah.txt 2:58,2.58,2:39,2-25,2:55,2:54,2.18,2:55,2:55
julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21
mikey.txt 2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38
code:
import json
class Athlete(json.JSONEncoder):
def __init__(self,a_name,a_dob=None,a_times=[]):
self.name = a_name
self.dob = a_dob
self.times = a_times
def top3(self):
return sorted(set([self.sanitize(t) for t in self.times]))[0:3]
def sanitize(self,time_string):
if '-' in time_string:
splitter = '-'
elif ':' in time_string:
splitter = ':'
else:
return (time_string)
(mins,secs) = time_string.split(splitter)
return (mins+'.'+secs)
with open('train_data_cor.txt') as f:
data = f.readline().strip().split(',')
ath = Athlete(data.pop(0),data.pop(0),data)
print(ath)
ath_json = json.dumps(ath.__dict__)
# 将json形式变量保存到文件中
with open('json.txt','w') as f:
json.dump(ath_json,f)
# 读取json文件内容
with open('json.txt') as f:
ath = json.load(f)
print(ath)