首页 > 解决方案 > 从 Excel 生成 JSON 文件以在 Python 中读取

问题描述

我有一个很大的 Excel 文件,其中包含几个表格。
我能够使用 VBA 代码中的 ADODB.Stream 将它们序列化为 JSON:

这是 VBA 代码:

Dim st As ADODB.Stream
  ' create a stream object
Set st = New ADODB.Stream
' set properties
st.Charset = "utf-8"
st.Type = adTypeText
' open the stream object and write some text
st.Open
st.WriteText myString
st.SaveToFile filepath, adSaveCreateOverWrite
st.Close

现在我想用 Python 读取它以将它传递给一个数据框:

这是 Python 代码:

import JSON
with open(myfilecomplete) as f:
    data = json.load(f)

我收到此错误:

UnicodeDecodeError:“charmap”编解码器无法解码位置 407330 中的字节 0x9d:字符映射到

该文件很大(1MB 的文本)。我什至不知道如何找到字符 407330。

此外,我应该以最常见的编码形式以 uft-8 写入光盘。对?

为什么 JSON 无法解码 utf-8?

回答/警告后编辑:不要尝试手动从 Excel 序列化 JSON 文件。这几乎总是会导致错误。使用适当的库来执行此操作,如下所示

标签: pythonjsonexcelvbautf-8

解决方案


你懂了 :


with open(myfilecomplete, encoding='utf-8-sig') as f:
    data = json.load(f)

这里有一些文档


推荐阅读