Python读取Excel数据转化为字典并另存为josn文件

导入Python所需要的包

1
2
import pandas as pd
import json

使用pandas读取Excel文件

  1. 样例数据采集于网上新冠肺炎中药处方,点击此按钮下载,
  2. 因为样例数据中有时间格式的文本,所以在读取Excel文件中加入了parse_dates读取日期格式的文本。
1
2
df=pd.read_excel(filepath ,parse_dates = ['发布时间'])
df.head()
读取的Excel文件格式👇
发布医院/机构 省份 早中极恢复期 症状 发布时间 方剂组成
0 广东省中医药局 广东省 湿邪郁肺,枢机不利 2020-01-26 藿香10g、 厚朴10g 、法下10g、 茯苓15g、 柴胡15g、 黄芩10g、 党参10...
1 广东省中医药局 广东省 邪热入肺,肺湿宣讲 2020-01-26 炙麻黄8g、 杏仁10g、 生石膏30g、 甘草10g、 槟榔10g、 厚朴10g、 草果1...
2 广东省中医药局 广东省 热闭肺,腑气不通 2020-01-26 生麻黄 8g、杏仁12g、 生石膏30g、 生大黄10g、 瓜蒌仁30g、 桃仁 10g、赤...
3 广东省中医药局 广东省 湿热蕴毒,肺气闭塞 2020-01-26 生麻黄 8g、杏仁12g、 生石膏30g、 生甘草 10g、滑石30g、 茵陈20g、 黄芩...
4 广东省中医药局 广东省 NaN 2020-01-26 红参 10g、炮附子10g、 山萸肉30g、 麦冬20g、 三七10g

转换代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def excelToDict(path):

# 创建最终返回的空字典
df_dict = {}
# 读取Excel文件
# df = pd.read_excel(path)

# 替换Excel表格内的空单元格,否则在下一步处理中将会报错
df.fillna("", inplace=True)

df_list = []
for i in df.index.values:
# loc为按列名索引 iloc 为按位置索引,使用的是 [[行号], [列名]]
df_line = df.loc[i, ['发布医院/机构', '省份', '早中极恢复期', '症状','发布时间','方剂组成']].to_dict()
# 将每一行转换成字典后添加到列表
df_list.append(df_line)
df_dict['data'] = df_list
return df_list
# return df_dict

data = excelToDict(df)
print(data)
转换后的数据👇
[{'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '早', '症状': '湿邪郁肺,枢机不利', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '藿香10g、 厚朴10g 、法下10g、 茯苓15g、 柴胡15g、 黄芩10g、 党参10g、 杏仁10g、 薏苡仁20g、 猪苓10g、 泽泻10g、 白蔻仁10g、 淡豆鼓10g、 通草 10g、生姜5g、 大枣5g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '早', '症状': '邪热入肺,肺湿宣讲', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '炙麻黄8g、 杏仁10g、 生石膏30g、 甘草10g、 槟榔10g、 厚朴10g、 草果10g、 知母10g、 白芍10g、 黄芩15g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '中', '症状': '热闭肺,腑气不通', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '生麻黄 8g、杏仁12g、 生石膏30g、 生大黄10g、 瓜蒌仁30g、 桃仁 10g、赤芍15g、 葶苈子20g、 黄连30g、 黄芩10g、 桑白皮10g、 重楼10g、 丹皮15g、 郁金15g、 石菖蒲15g、 生地15g、玄参15g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '中', '症状': '湿热蕴毒,肺气闭塞', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '生麻黄 8g、杏仁12g、 生石膏30g、 生甘草 10g、滑石30g、 茵陈20g、 黄芩15g、 白蔻仁10g、 藿香15g、 法夏15g、 苍术15g、 葶苈子20g、 连翘15g、 白僵蚕5g、 蝉蜕5g、 姜黄10g、 生大黄5g、 重楼10g、 丹皮 15g、赤芍15g、 郁金15g、 石菖蒲15g、 生地15g、 玄参15g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '极', '症状': '', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '红参 10g、炮附子10g、 山萸肉30g、 麦冬20g、 三七10g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '恢复', '症状': '肺脾两虚', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '生晒参10g、 炒白术15g、 茯苓15g、 白扁豆30g、 砂仁6g、 莲子30g、 炙甘草6g、 桔梗10g、 山药15g、 薏苡仁30g、 炒麦芽30g、 神曲10g'}, {'发布医院/机构': '广东省中医药局', '省份': '广东省', '早中极恢复期': '恢复', '症状': '气阴两伤,余邪未尽', '发布时间': Timestamp('2020-01-26 00:00:00'), '方剂组成': '西洋参20g、 石斛10g、 麦冬10g、 知母10g、 淡竹叶10g、 黄连3g、 甘草6g、 茯苓15g、 法半夏10g、 橘红10g、 陈皮10g、 炒麦芽30g'}, {'发布医院/机构': '国家卫健委', '省份': '', '早中极恢复期': '早', '症状': '寒湿郁肺', '发布时间': Timestamp('2020-01-28 00:00:00'), '方剂组成': '苍术15g、陈皮10g、厚朴10g、藿香10g、草果6g、生麻黄6g、羌活10g、生姜10g、槟郎10g'}, {'发布医院/机构': '国家卫健委', '省份': '', '早中极恢复期': '中', '症状': '疫毒闭肺', '发布时间': Timestamp('2020-01-28 00:00:00'), '方剂组成': '杏仁10g、生石膏30g、瓜萎30g、生大黄6g、生炙麻黄各6g、葶苈子10g、桃仁10g、草果6g、槟郎10g、苍术10g'}, {'发布医院/机构': '国家卫健委', '省份': '', '早中极恢复期': '重', '症状': '内闭外脱', '发布时间': Timestamp('2020-01-28 00:00:00'), '方剂组成': '人参15g,黑顺片10g,山茱萸15g, 送服苏合香丸或安宫牛黄丸'}, {'发布医院/机构': '国家卫健委', '省份': '', '早中极恢复期': '恢复期', '症状': '肺脾气虚', '发布时间': Timestamp('2020-01-28 00:00:00'), '方剂组成': '法半夏9g、陈皮10g、党参15g、炙黄芪30g、茯苓15g、藿香10g、砂仁6g'}, {'发布医院/机构': '宝鸡市中医医院', '省份': '陕西省', '早中极恢复期': '预防', '症状': '', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '生黄芪 9g 炒白术 6g 防 风 3g 玄 参 6g 炙百合 30g 石 斛 10g 梨 皮 30g 桔 梗 10g 芦 根 30g 生甘草 6g'}, {'发布医院/机构': '宝鸡市中医医院', '省份': '陕西省', '早中极恢复期': '预防', '症状': '', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '太子参 15g 贯 众 6g 银 花 10g 连 翘 10g 大青叶 10g 苏 叶 6g 葛 根 10g 藿 香 10g 苍 术 6g 佩 兰 10g 沙 参 20g 芦 根 10g '}, {'发布医院/机构': '贵州省中医药管理局', '省份': '贵州省', '早中极恢复期': '预防', '症状': '', '发布时间': Timestamp('2020-01-23 00:00:00'), '方剂组成': '北沙参10g、玉竹20g、石斛20g、贯众20g、苍术10g、石菖蒲10g。'}, {'发布医院/机构': '贵州省中医药管理局', '省份': '贵州省', '早中极恢复期': '儿童预防', '症状': '', '发布时间': Timestamp('2020-01-23 00:00:00'), '方剂组成': '板蓝根20g 贯众15g 藿香10g 薄荷10g\n菊花15g 荆芥10g 葛根6g 芦根10g\n甘草6g'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '早', '症状': '', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '麻黄9g、炙甘草6g、杏仁9g、生石膏15-30g、桂枝9g、泽泻9g、猪苓9g、白术9g、茯苓15g、柴胡16g、黄芩6g、姜半夏9g、生姜9g、紫菀9g、冬花9g、射干9g、细辛6g、山药12g、枳实6g、陈皮6g、藿香9g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '早', '症状': '风热犯肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '金银花15g、连翘15g、防风9g、黄芩15g、牛蒡子9g、桔梗9g、芦根18g、柴胡9g、陈皮9g、生甘草6g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '早', '症状': '寒湿郁肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '生麻黄6g、生石膏15g、杏仁9g、羌活15g、葶苈子15g、贯众9g、地龙15g、徐长卿15g、藿香15g、佩兰9g、苍术15g、云苓45g、生白术30g、焦三仙各9g、厚朴15g、槟榔9g、草果9g、生姜15g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '早', '症状': '湿热蕴肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '槟榔10g、草果10g、厚朴10g、知母10g、黄芩10g、柴胡10g、赤芍10g、连翘15g、青蒿10g、苍术10g、大青叶10g、生甘草5g。呕恶者加黄连3g、苏叶6g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '中', '症状': '湿毒郁肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '生麻黄6g、苦杏仁15g、生石膏30g、生薏苡仁30g、苍术10g、藿香15g、青蒿12g、虎杖20g、马鞭草30g、干芦根30g、葶苈子15g、化橘红15g、生甘草10g。呕恶者加黄连3g、苏叶6g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '中', '症状': '寒湿阻肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '苍术15g、陈皮10g、厚朴10g、藿香10g、草果6g、生麻黄6g、羌活10g、生姜10g、槟榔10g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '重', '症状': '热毒闭肺', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '生麻黄6g、杏仁9g、生石膏15g、甘草3g、藿香10g、厚朴10g、苍术15g、草果10g、法半夏9g、茯苓15g、生大黄5g、生黄芪10g、葶苈子10g、赤芍10g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '重', '症状': '气营两燔', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '生石膏30-60g、知母30g、生地30-60g、水牛角30g、赤芍30g、玄参30g、连翘15g、丹皮15g、黄连6g、竹叶12g、葶苈子15g、生甘草6g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '危重', '症状': '内闭外脱', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '人参15g、黑顺片10g、山茱萸15g,送服苏合香丸或安宫牛黄丸。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '恢复', '症状': '气阴两虚', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '南北沙参各10g、麦冬15g、西洋参6g,五味子6g、生石膏15g、淡竹叶10g、桑叶10g、芦根15g、丹参15g、生甘草6g。'}, {'发布医院/机构': '上海市中医药管理局', '省份': '江苏省', '早中极恢复期': '恢复', '症状': '肺脾气虚', '发布时间': Timestamp('2020-02-24 00:00:00'), '方剂组成': '法半夏9g、陈皮10g、党参15g、炙黄芪30g、炒白术10g、茯苓15g、藿香10g、砂仁6g、甘草6g。'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '风热夹湿', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '银花30g连翘30g荆芥15g牛蒡子15g薄荷15g桔梗30g杏仁15g广藿香15g厚朴15g茯苓30g法半夏15g豆蔻15g薏苡仁30g白扁豆30g焦山楂30g建曲15g芦根30g'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '风寒夹湿', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '荆芥15g防风15g川芎15g白芷15g薄荷15g桔梗30g广藿香15g紫苏叶15g厚朴15g炒白术30g法半夏15g建曲15g薏苡仁30g茯苓30g豆蔻15g杏仁15g焦山楂30g白扁豆30g芦根30g'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '湿邪郁肺', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '蜜麻黄10g杏仁15g草果10-20g槟榔10-15g蝉蜕5-10g连翘10-30g苍术10-15g桔梗20-30g黄芩15g牛蒡子15g生甘草5-10g。'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '湿热蕴肺', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '陈皮10-15g杏仁10-15g黄芩10-15g瓜蒌皮10-15g茯苓15-30g藿香15g厚朴10-20g青蒿20-30g芦根20-30g金银花15-30g太子参30g生甘草5-10g'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '邪热壅肺', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '蜜麻黄10g杏仁10-15g石膏20-30g桑白皮15g金银花20-30g连翘20-30g黄芩15g浙贝母15g生甘草5-10g'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '邪毒闭肺', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '杏仁15g生石膏20-30g瓜蒌皮15g大黄5g蜜麻黄10g葶苈子15-20g桃仁10g赤芍15g生甘草5-10g'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '急性期', '症状': '内闭外脱', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '生晒参20-30g,炙附片30-60g,山茱萸15-20g,送服安宫牛黄丸或紫雪散'}, {'发布医院/机构': '四川省中医药管理局', '省份': '四川省', '早中极恢复期': '恢复期', '症状': '余邪未尽、气阴两虚', '发布时间': Timestamp('2020-01-24 00:00:00'), '方剂组成': '竹叶15g石膏15-20g太子参20-30g麦冬10-15g半夏10g白术15-20g茯苓15-20g炙甘草5-10g'}, {'发布医院/机构': '江西中医药管理局', '省份': '江西省', '早中极恢复期': '预防', '症状': '', '发布时间': Timestamp('2020-02-03 00:00:00'), '方剂组成': '生黄芪12g、防风\n\n10g、白术10g、银花10g、连翘10g、贯众6g、佩兰10g、陈皮10g、苍术10g、桔梗10g。'}, {'发布医院/机构': '江西中医药管理局', '省份': '江西省', '早中极恢复期': '早', '症状': '寒湿郁肺', '发布时间': Timestamp('2020-02-03 00:00:00'), '方剂组成': '苍术15g、陈皮10g、厚朴10g、藿香10g、草果6g、生麻黄6g、羌活10g、生姜10g、槟郎10g'}, {'发布医院/机构': '江西中医药管理局', '省份': '江西省', '早中极恢复期': '中', '症状': '疫毒闭肺', '发布时间': Timestamp('2020-02-03 00:00:00'), '方剂组成': '杏仁10g、生石膏30g、瓜萎30g、生大黄6g、生炙麻黄各6g、葶苈子10g、桃仁10g、草果6g、槟郎10g、苍术10g'}, {'发布医院/机构': '江西中医药管理局', '省份': '江西省', '早中极恢复期': '重', '症状': '内闭外脱', '发布时间': Timestamp('2020-02-03 00:00:00'), '方剂组成': '人参15g、黑顺片10g、山茱萸15g,送服苏合香丸或安宫牛黄丸'}, {'发布医院/机构': '江西中医药管理局', '省份': '江西省', '早中极恢复期': '恢复', '症状': '肺脾气虚', '发布时间': Timestamp('2020-02-03 00:00:00'), '方剂组成': '法半夏9g、陈皮10g、党参15g、炙黄芪30g、茯苓15g、藿香10g、砂仁6g'}, {'发布医院/机构': '黑龙江省中医药管理局', '省份': '黑龙江省', '早中极恢复期': '早', '症状': '寒湿郁肺', '发布时间': Timestamp('2020-02-26 00:00:00'), '方剂组成': '藿香15g、苏叶15g、桔梗15g、枳壳15g、生麻黄6g、杏仁10g、陈皮15g、茯苓20g、白术15g、佩兰15g、苍术15g、厚朴15g、半夏15g、草果仁15g、白芷15g、黄芩10g、大青叶15g、葛根15g、甘草15g。'}, {'发布医院/机构': '黑龙江省中医药管理局', '省份': '黑龙江省', '早中极恢复期': '中', '症状': '疫毒闭肺', '发布时间': Timestamp('2020-02-26 00:00:00'), '方剂组成': '水牛角20g、生地15g、丹参25g、玄参20g、金银花30g、连翘20g、桔梗20g、枳壳20g、川芎15g、赤芍25g、地龙20g、桃仁15g、太子参25g、炒白术20g、茯苓25g、生麻黄10g、白果20g、葶苈子20g、黄芩15g、杏仁10g、紫苏子20g、瓜蒌20g、浙贝母15g、生薏米20g、甘草15g。'}, {'发布医院/机构': '黑龙江省中医药管理局', '省份': '黑龙江省', '早中极恢复期': '重', '症状': '内闭外脱', '发布时间': Timestamp('2020-02-26 00:00:00'), '方剂组成': '人参15g、干姜10g、附子10g、甘草10g,煎汤送服紫雪丹或至宝丹、安宫牛黄丸、苏合香丸酌情选用。'}, {'发布医院/机构': '黑龙江省中医药管理局', '省份': '黑龙江省', '早中极恢复期': '恢复期', '症状': '余邪未尽,气阴两伤', '发布时间': Timestamp('2020-02-26 00:00:00'), '方剂组成': '竹叶15g、石膏20g、太子参15g、麦冬20g、半夏10g、枇杷叶15g、玉竹15g、玄参15g、杏仁10g、陈皮15g、甘草10g。'}]

保存为json文件格式

1
2
3
4
5
6
7
print(filepath + '共有%d' % (len(data)) + '行数据')
for i in data:
i['发布时间'] = i['发布时间'].strftime("%Y %b %d %H:%M:%S")
for i in range(len(data)):
filename = filepath+'outfile/' + str(i+1)+'.json'
with open(filename, 'w', encoding='utf-8') as f:
json.dump(data[i], f, ensure_ascii=False, indent=4) # ensure_ascii=False(输出中文), indent=4(缩进为4)

您的支持,使我不懈努力!❤️
  • PayPal
  • AliPay
  • WeChatPay
  • QQPay
Donate

 评论




Copyright © 2019-2020 YINUXY   |   ICP 鄂ICP备20002395号   |   MOE ICP 萌ICP备 20200022号   |   正在载入...   |   站点地图  |  

UV
PV