python读取txt内容并整理成excel

task

读取txt中的文本(json样式,有数字、字母、汉字)
按需提取变量内容、写入excel

step1: 读取txt

第一次尝试如下代码

with open("test.txt","r") as f:
    data=f.read()
    print(data)

报错如下

gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

网上找了很多教程都没用,很多人说加encoding='utf-8',直到有人说要看看你的txt文件的编码格式是什么


我的是utf-16,所以代码这么写

with open("test.txt","r",encoding="utf-16") as f:
    data=f.read() #data类型是str

step2: 数据整理

由于我要处理的txt文档内容是json格式,所以我import json来处理

import json
data2=json.loads(data) #data2类型是dict

data2字典中的key有3个(见下图),对我有用的key是data,通过type方法我知道data2['data']的类型是list



此时可以print一下data2['data']的内容(此处省略)。data2['data']的有72个元素(每一个元素都是一个json格式的信息组,信息组中对我有用的是intentName和ruleList)


设置好一些空数组存储我想要整理的内容,之后遍历data_list


step3: pandas整理成行、列,并存入excel

借用dataframe整理好每一列的名称、每一列对应的变量

from pandas.core.frame import DataFrame
c={"intentName" : intentName,
   "ruleList1" : ruleList[0],
   "ruleList2" : ruleList[1],
   "ruleList3" : ruleList[2],
   "ruleList4" : ruleList[3],
   "ruleList5" : ruleList[4],
   "ruleList6" : ruleList[5],
   "ruleList7" : ruleList[6],
   "ruleList8" : ruleList[7],
   "ruleList9" : ruleList[8]
  }#将列表a,b转换成字典
mypd=DataFrame(c)#将字典转换成为数据框

有需要可以按列进行排序

 mypd.sort_values(by="intentName",inplace=True,ascending=True)

写入excel

mypd.to_excel("***.xlsx",index=False)

完工~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容