首页 > 解决方案 > Python 错误 - 从 MySql 数据库中提取值的 Unicode/Ascii 问题

问题描述

这已经被问了一百万次,但我尝试的每一件事都没有奏效,而且都是针对略有不同的问题。我正在失去理智!

我有一个 Python 脚本,它从 MySql 数据库中提取数据——一切正常。

数据库信息:

但是,我遇到了错误,我意识到这是因为包含 unicode 的值,例如:

入库截图

此项的值为“DOMAINoardroom”。

我努力了:

    text = order[11].encode().decode("utf-8")
    text = order[11].encode("ascii", errors="ignore").decode()
    text = str(order[11].encode("utf8", errors="ignore"))

后者确实可以工作,但是由于它是字节,因此将其输出为 b'DOMAIN\x08oardroom'

我可以让它通过 print(text) 到屏幕上接受文本。但是,当我尝试将其输出到 word 文档(使用 docx 模块)时,会产生错误:

table = document.add_table(rows=total_orders*2, cols=1)
row = table.rows[0].cells
row[0].text = row_text

ValueError:所有字符串必须与 XML 兼容:Unicode 或 ASCII,没有 NULL 字节或控制字符

我对它如何处理 unicode 并不特别挑剔,例如,如果需要,将其删除,但我只需要它进行解析而不会出错。

这里有什么想法或建议吗?

标签: pythonmysqlunicodeasciidocx

解决方案


推荐阅读