将 JSON 转换为 EXEL(xlsx) 并保存 UTF-8 不起作用(Python)

问题描述 投票:0回答:0

我在 python 中的代码无法将我的 json 文件转换为 UTF-8 格式的 exel,并且我的 exel 返回这个字符“�”,对于大写和重音符号,例如:“Á”。我的代码:

import json
import pandas as pd
import os
from openpyxl import Workbook

caminho = "C:/Users/Braian/Documents/Área de Trabalho/Braian/VS Code/appAPI/JSON/Cliente"
lista_arquivos = os.listdir(caminho)

lista_datas = []

for arquivo in lista_arquivos:
    # Descobrir data arquivo
    if ".json" in arquivo:
        data = os.path.getmtime(f'{caminho}/{arquivo}')
        lista_datas.append((data, arquivo))

    # data inicial = 01/01/2021
    # data1 = 02/01/2021 -> 10.000
    # data2 = 12/02/2021 -> 150.000

lista_datas.sort(reverse=True)
ultimo_arquivo = lista_datas[0]

# Abaixo eu irei converter o arquivo Json em XLSX

print("\nConvertendo seu arquivo em Json para Xlsx...")

# Obtém os dados que eu preciso
with open(os.path.join(caminho, ultimo_arquivo[1]), encoding='utf-8-sig') as json_file:
    data = json.load(json_file)
    df = pd.DataFrame(data['data']['rows'])

# Seta o nome do arquivo
nome_arquivo = f"{caminho}/Cliente.xlsx"

# Cria um objeto Workbook do openpyxl
workbook = Workbook()
worksheet = workbook.active

# Adiciona os dados ao Worksheet
for row_data in data['data']['rows']:
    worksheet.append(list(row_data.values()))

# Salva o arquivo
workbook.save(nome_arquivo)

print("\nArquivo em Xlsx foi finalizado!")

我尝试转换更多编码,例如“UTF-8”、“UTF-16”、“LATIN-1”等。

python json pandas utf-8 openpyxl
© www.soinside.com 2019 - 2024. All rights reserved.