python - Python 错误 - 从 MySql 数据库中提取值的 Unicode/Ascii 问题
问题描述
这已经被问了一百万次,但我尝试的每一件事都没有奏效,而且都是针对略有不同的问题。我正在失去理智!
我有一个 Python 脚本,它从 MySql 数据库中提取数据——一切正常。
数据库信息:
- 我相信数据库中的信息是正确的。我正在尝试将多条记录解析为 word 文档——这就是为什么我不太担心准确性的原因——即使删除了坏字符——这很好。
- 数据库的字符集是 UTF-8,我正在使用的字段是 VarChar
- 我正在使用 mysql.connector python 模块进行连接
但是,我遇到了错误,我意识到这是因为包含 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 并不特别挑剔,例如,如果需要,将其删除,但我只需要它进行解析而不会出错。
这里有什么想法或建议吗?
解决方案
推荐阅读
- function - 类型问题的飞镖通用扩展..方法
- acumatica - 在 Acumatica 表格报表中包装列
- java - Java - 如何防止 LocalDate 回到 MySQL 日期?
- javascript - 在 vuejs 组件中添加 window.resize 事件不能独立工作
- ios - 如何使用具有正确值的 Swift 在 CoreData 中保存解码值
- python - 使用 requests.get() 从 Reddit 提交图像 URL 时遇到问题
- automation - 为 msi 安装程序创建响应文件
- angular - 如果 'nb-card' 是一个 Angular 组件,则验证它是这个模块的一部分
- javascript - 在 Lerna Monorepo 中检测循环依赖
- groovy - 类类型转换?