【问题标题】:xmltodict 'UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte'xmltodict \'UnicodeDecodeError: \'utf-8\' 编解码器无法解码位置 0 中的字节 0x80:无效的起始字节\'
【发布时间】:2023-02-07 20:37:59
【问题描述】:

我正在尝试使用带有 python 3 的“xmltodict”库读取 XML.dump 文件,以从该文件制作字典。 我使用的代码是这样的:

import xmltodict

with open('file1.xml.dump') as fd:
    content = fd.read()
    doc = xmltodict.parse(content)

我得到的错误是: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

有谁知道这个错误是关于这个错误的是什么以及如何解决这个问题?

我还在with open语句中添加了encoding='UTF-8',我得到了同样的错误。

【问题讨论】:

  • 打开文件时请给出utf编码\
  • @HimanshuPoddar open默认使用UTF-8,这就是导致错误的原因。该文件不是 UTF-8
  • 我不是在谈论 utf-8 编码
  • @Sarah 询问创建该文件的人。
  • 我们不知道那个文件使用了什么编码,也不知道为什么它不是 UTF8,事实上的标准,尤其对于 XML 文件。你确定它甚至是 XML 吗? XML 文档以 < 开头。该文件根本不是 XML,或者在 XML 部分之前包含额外的文本

标签: python xml xmltodict


【解决方案1】:

我刚刚步入这个错误。

在我的例子中,它是由分配给 #text 节点的浮点数引起的。

      'field': {
        '@attribute': 'm3',
        '#text': 10.076
      }

分配它是有效的但会引发编码错误。

最简单的修复方法是像这样在 f 字符串中分配值:

'field': {
        '@attribute': 'm3',
        '#text': f'{10.076}'
      }

所以我建议你检查你的字典并验证所有根字段确实是字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2020-09-22
    • 2021-12-01
    • 2016-05-13
    • 2020-02-06
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多