python - 从 Excel 生成一个 JSON 文件以在 Python 中读取

标签 python json excel vba utf-8

我有一个很大的 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' codec can't decode byte 0x9d in position 407330: character maps to

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

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

为什么 JSON 不能解解码 utf-8?

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

最佳答案

你明白了:


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

Here some documentation

关于python - 从 Excel 生成一个 JSON 文件以在 Python 中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58396563/

相关文章:

python - 将嵌套 JSON 转换为 CSV

javascript - 返回 json 对象中的数据

c++ - 在 rapidjson 中添加集合(不同的元素)

excel - Grails Excel-export覆盖模板样式

excel - 如何在Excel中检查多个时间范围之间的时间范围?

python - 内置 python 模块(即 sys)的 Intellij 未解析引用

python - 由 python subprocess.Popen(shell=True) 创建的进程的 pid 不是生成的 shell 的 pid

sql - Excel VBA - 存储过程 (SQL Server)

python - 计算 - numpy python 错误

python - pandas,使用不同格式的数据帧更新数据帧值