确实,某些情况下,Excel 文件中的编码可能会导致读取文件时出现问题。为了解决这个问题,我们可以尝试在加载 Excel 文件之前设置编码。

以下是修正后的代码,包含设置编码的步骤:

import json
import pandas as pd
from openpyxl import load_workbook

# 定义文件路径
file_paths = ['首次病程记录.xlsx', '出院记录.xlsx', '日常病程记录.xlsx']

# 创建一个空的DataFrame用于存储所有数据
merged_data = pd.DataFrame()

# 遍历每个文件路径
for file_path in file_paths:
    # 加载Excel文件并设置编码
    wb = load_workbook(filename=file_path, read_only=True, data_only=True, keep_vba=False, keep_links=False)
    wb.encoding = 'utf-8'

    # 获取第一个工作表
    sheet = wb.active

    # 获取字段名称
    field_names = [cell.value for cell in sheet[1]]

    # 将工作表数据加载到DataFrame中
    data = pd.DataFrame(sheet.values, columns=field_names)
    # 将数据合并到总的DataFrame中
    merged_data = pd.concat([merged_data, data], ignore_index=True)

# 选择需要输出的字段
selected_fields = ['就诊流水号', '性别', '入院诊断']

# 选择需要的列
output_data = merged_data[selected_fields]

# 输出为CSV文件
output_data.to_csv('output.csv', index=False)
print("CSV文件输出成功!")

# 输出为JSON文件
output_data_json = output_data.to_json(orient='records')
with open('output.json', 'w', encoding='utf-8') as f:
    f.write(output_data_json)
print("JSON文件输出成功!")

在代码中添加了以下两行:

wb.encoding = 'utf-8'
with open('output.json', 'w', encoding='utf-8') as f:

这样可以确保正确地处理文件的编码。

请尝试运行修正后的代码,并验证是否能够成功读取并处理Excel文件。如果问题仍然存在,请提供更多的详细信息,我将尽力帮助你解决问题。

Excel 文件编码问题导致读取失败的解决方案

原文地址: https://www.cveoy.top/t/topic/b2Vi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录