Python将str强制转化为dict,完成json格式数据转存为Excel

有些程序的结果经常是以json格式保存的,若需要进行数据分析,还是把数据放进DataFrame比较方便。
比如我们拿到一个Txt文档,里面写满了一行行这样的数据:

{"tCity":"苏州","tClassify":"[询价]","tCancelReason":"","tProvince":"江苏"}
{"tCity":"上海","tClassify":"[询价,试乘]","tCancelReason":"0901832","tProvince":"上海"}
{"tCity":"桂林","tClassify":"[询价,询价]","tCancelReason":"0912340","tProvince":"广西"}

分析以上数据,可知:

  • 数据存储在Txt文件中,本质是字符串str
  • 该字符串展示形式,形似dict类型

因此,思考采用什么方法可以将Str直接强制转化为dict类型?

经查资料,知eval()方法可以直接将str转化为dict

  • pandas可以将dataframe直接写入到Excel文件中
  • dataframe可以将结构统一的Dict追加到数据框新的一行

所以,我们可以通过以下代码实现数据格式的转换:

import pandas as pd

txt = pd.read_table('c:/Users/ami/Documents/WeChat Files/helloMe/Files/mq(3).txt',encoding='utf-8',header=None)

new = pd.DataFrame({},index=[0])
result = new

for key,value in txt[0].items():
    new = eval(value)
    result = result.append(new, ignore_index=True)

result.to_excel('c:/Users/ami/Desktop/result20180408.xlsx')
print('done!')

有几个注意点需要强调一下:

  1. pandas读入txt文件,使用read_table()方法
  2. read_table()方法,可以通过encoding参数来设置编码方式,设置encoding=’utf-8’,你就不会看到乱码
  3. read_table()方法,可以通过header参数来设置是否有表头
  4. dataframe的append()方法,可以通过ignore_index参数来设置行索引

欢迎关注微信公众号“数据分析师手记”,共同成长~
这里写图片描述

猜你喜欢

转载自blog.csdn.net/fwj_ntu/article/details/79853115