在Python编程中,有时我们需要处理大量数据,例如从Excel文件中读取数据并将其转换成其他格式,如JSON。在给定的示例中,它演示了如何使用Python3读取多个Excel文件并将数据写入一个JSON文件。下面将详细解释这个过程。 我们导入所需的库:`xlrd`用于读取Excel文件,`json`用于处理JSON数据,以及`operator`用于按特定字段对数据进行排序。 ```python import xlrd import json import operator ``` `read_xlsx()`函数用于读取单个Excel文件。它打开指定的Excel文件,获取第一个工作表,并将数据存储为字典列表。每一行数据被转换为一个包含微信文章属性的字典,如`wechat_name`, `wechat_id`, `title`, `abstract`, `url`, `time`, `read`, `like`, 和 `number`。 ```python def read_xlsx(filename): data1 = xlrd.open_workbook(filename) table = data1.sheets()[0] n_rows = table.nrows data = [] for v in range(1, n_rows-1): values = table.row_values(v) data.append({ 'wechat_name': values[0], 'wechat_id': values[1], 'title': values[2], 'abstract': values[3], 'url': values[4], 'time': values[5], 'read': values[6], 'like': values[7], 'number': values[8], }) return data ``` 在主程序中,我们使用一个for循环读取1到15(包括1和15)的Excel文件,并将所有数据合并到一个大列表`d`中。然后,我们按照`time`字段对数据进行升序排序,以便于后续处理。我们使用`json.dumps()`方法将数据序列化为JSON格式,并写入到`article.json`文件中,确保编码为UTF-8,并且缩进为2个空格,以便于阅读。 ```python if __name__ == '__main__': d = [] for i in range(1, 16): d1 = read_xlsx('./excel data/' + str(i) + '.xlsx') d.extend(d1) d = sorted(d, key=operator.itemgetter('time')) with open('article.json', 'w', encoding='utf-8') as f: f.write(json.dumps(d, ensure_ascii=False, indent=2)) ``` 除了主任务外,代码还展示了如何将唯一的`wechat_id`写入另一个文本文件`wechat_id.txt`,以便进一步处理。这里通过检查每个`wechat_id`是否已存在于`name`列表中来避免重复。 ```python name = [] f1 = open('wechat_id.txt', 'w') for i in d: if i['wechat_id'] not in name: name.append(i['wechat_id']) f1.writelines(i['wechat_id']) f1.writelines('\n') print(len(name)) ``` 此外,补充知识部分提到了如何使用Python与MySQL数据库交互,并使用`openpyxl`库来读取和写入Excel文件。这个功能可能是为了根据模板文件创建新的Excel文件,每次写入数据时都会找到当前Sheet的最大行数,然后从下一行开始写入,以避免覆盖已有数据。这个功能在实现自动化报表时非常有用。 ```python # 省略的代码片段展示了如何连接MySQL数据库、读取模板文件、创建输出文件夹、创建新Excel文件并按行写入数据 ``` 以上就是关于Python3如何循环读取Excel文件并写入JSON的操作,以及如何处理MySQL数据库中的时间参数和Excel文件的写入技巧。这些技能在数据处理和自动化任务中是至关重要的。
- 粉丝: 7
- 资源: 939
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助