将file_in【student.txt】文件转换为json格式,并保存为file_out【student.json】文件到当前目录。file_in【student.txt】文件每行内容的格式为:
时间 姓名 学号:内容
09:54:13 张三 1907040115:11111
09:54:17 李四 1907040220:22222
09:54:20 张三 1907040115:223
Json文件的格式如下,当出现重复学号时,只保留该学号第一次出现的内容。
file_out数据按学号顺序保存。
提示:file_in文件的解析,用正则表达式更加高效。请自行学习re库。
正则表达式有点复杂,懒得弄了
import json
def fun4(file_in='student.txt',file_out='student.json'):
"""
{ "1907040115":{ "Name": "张三", "Time": "09:54:13", "Content": "11111" }, "1907040220":{ "Name": "李四", "Time": "09:54:17", "Content": "22222" }}
"""
with open(abspath(file_in),'r',encoding='utf8') as f:
l=f.readlines()
dic={
}
for i in range(len(l)):
name=l[i].split()[1]
num=l[i].split()[2]
time=l[i].split()[0]
con=l[i].split()[4]
if num not in dic:
dic1={
"Name":name,"Time":time,"Content":con}
dic[num]=dic1
dic2=dict(sorted(dic.items(),key=lambda x:x[0]))
path1=abspath('student.json')
with open(path1,'w',encoding='utf8') as f1:
json.dump(dic2,f1)
这里试多了,文件锁掉了
使用这个来解锁
! rm -f student.json