UnicodeWarning:Unicode 相等比较无法将两个参数转换为 Unicode

2023-12-09

我知道很多人以前遇到过这个错误,但我找不到解决我的问题的方法。

我有一个想要规范化的 URL:

url = u"http://www.dgzfp.de/Dienste/Fachbeitr%C3%A4ge.aspx?EntryId=267&Page=5"
scheme, host_port, path, query, fragment = urlsplit(url)
path = urllib.unquote(path)
path = urllib.quote(path,safe="%/")

这给出了一条错误消息:

/usr/lib64/python2.6/urllib.py:1236: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  res = map(safe_map.__getitem__, s)
Traceback (most recent call last):
  File "url_normalization.py", line 246, in <module>
    logging.info(get_canonical_url(url))
  File "url_normalization.py", line 102, in get_canonical_url
    path = urllib.quote(path,safe="%/")
  File "/usr/lib64/python2.6/urllib.py", line 1236, in quote
    res = map(safe_map.__getitem__, s)
KeyError: u'\xc3'

我尝试从 URL 字符串中删除 unicode 指示符“u”,但没有收到错误消息。但是我如何自动删除 unicode,因为我直接从数据库读取它。


urllib.quote()无法正确解析 Unicode。要解决这个问题,您可以致电.encode()读取 URL 时的 url 方法(或从数据库读取的变量)。所以跑url = url.encode('utf-8')。这样你就得到:

import urllib
import urlparse
from urlparse import urlsplit

url = u"http://www.dgzfp.de/Dienste/Fachbeitr%C3%A4ge.aspx?EntryId=267&Page=5"
url = url.encode('utf-8')
scheme, host_port, path, query, fragment = urlsplit(url)
path = urllib.unquote(path)
path = urllib.quote(path,safe="%/")

然后你的输出path变量将是:

>>> path
'/Dienste/Fachbeitr%C3%A4ge.aspx'

这有效吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UnicodeWarning:Unicode 相等比较无法将两个参数转换为 Unicode 的相关文章

随机推荐

  • 在 2.0.5 中,将 cassandra 作为服务启动不起作用,sudo cassandra -f 有效

    当我尝试在 ubuntu 12 04 上启动 cassandra 时 通过 Datastax 安装 dsc20包 作为服务如下 sudo 服务 cassandra 启动 it says 无法访问 Cassandra 的 pidfile 日志
  • 如何使用弹出窗口在 JavaScript 中构建一个简单的图片库

    我在互联网上寻找帮助 但我无法让它工作 有人能给我一个如何编写这样的代码的例子吗 我会调整图像的大小 并为弹出窗口提供一个缩略图大小的图像和一个更大的图像 我希望用户单击缩略图大小的图像并在弹出窗口中显示全尺寸的图像 我是 Javascri
  • Excel:如何使用VBA检查单元格是否为空? [复制]

    这个问题在这里已经有答案了 通过VBA 我如何检查一个单元格是否是另一个具有特定信息的空单元格 例如 如果 A A 产品特殊 且 B B 为 null 那么 C1 产品特殊 另外 我如何使用For Each循环在Range以及如何返回另一个
  • 选择不同数据库中的列

    是否可以在位于同一服务器上的不同数据库之间执行选择 或插入 语句 如果是 怎么办 您可以使用以下语法指定数据库databasename tablename Example SELECT mydatabase1 tblUsers UserID
  • 如何彻底卸载oracle 11g?

    如何从笔记本电脑上卸载 Oracle 11g 软件附带的卸载程序并不能完全卸载所有组件 我用Oracle12c试了一下 留下了很多程序 我尝试手动删除这些文件 但 BIN 目录中的某些 dll 文件无法访问 我想用 11g 做正确的事 有什
  • 使用jquery从父页面访问子IFrame中的元素

    我尝试使用以下代码从父文档访问 iframe 中文档的元素 但由于某种原因无法使其工作 父级 html
  • 需要帮助使用 GIOService(GLib、Glib-GIO)实现简单的套接字服务器

    我正在学习使用 GLib 编写简单 高效的套接字服务器的基础知识 我正在尝试 GSocketService 到目前为止 我似乎只能接受连接 但随后它们立即关闭 从文档中我无法弄清楚我错过了哪一步 我希望有人能为我阐明这一点 运行以下命令时
  • 如何提高最低成本路径模型的模拟速度

    通过使用网络扩展 以下代码在两个多边形 由多个面片组成 之间构建成本最低的路径 to calculate LCP ID polygon 1 ID polygon 2 let path let path cost 1 Define polyg
  • 如何确定用户在汇编语言 X86 中输入的字符串中单词的频率?

    我是汇编语言编程的完全初学者 我需要帮助编写一个汇编语言程序来从用户那里获取字符串 计算并显示每个单词在用户输入的字符串中出现的次数 例如 如果用户输入 Hello Hello what is new Hello what is not n
  • 查找数组一中最接近数组二的元素

    这个答案解释如何找到最接近 已排序 的数组元素单点 以对大型数组有效的方式 稍作修改 def arg nearest array value idx np searchsorted array value side left if idx
  • 如何使用 XAML 绑定按钮单击来更改面板(网格)的内容

    我正在创建 WPF 应用程序的 UI 在致力于软件功能的实现时 我在创建 UI 方面没有太多经验 现在我需要一种方法来更改 属性 面板的内容 该面板有一个网格来包含内容 我创建了多个面板 隐藏了除一个之外的所有面板 现在我想在用户单击顶部功
  • Slim PHP 的默认 GET 路由

    我最近使用 Slim PHP 框架构建了一个小型 API 它运行得很好 然而 我想为根 设置一个 GET 路由 它以基本消息响应 并让任何其他 GET 请求返回 访问被拒绝 在阅读了文档和各种示例后 我无法弄清楚如何完成这些任务 我的项目仅
  • APC 3.1.x 的稳定性如何?

    是否有人在大容量站点的生产中使用 APC 3 1 x 3 1 系列被标记为 测试版 版本 但它具有我们真正希望拥有的一些功能 具体来说 apc clear cache user 的性能改进没有成为 3 0 19 那么 您是否在非常活跃的站点
  • Python - 根据列的最大值删除重复项

    我不太擅长使用 pandas 我认为 pandas 应该解决我的问题 我有一个文本文件 其中包含数据 id1 id2 value1 value2 value3 1 2 30 40 20 3 1 2 30 42 26 2 3 5 12 55
  • 从 NTFS-MFT 参考号获取文件信息

    在我的 C 应用程序中 我已经有一种方法来检查文件系统 但我想利用从主文件表 MFT 中读取数据的优势 因为它的速度要快得多 我了解 1 它是专有规范 因此如有更改 恕不另行通知 2 仅当应用程序在管理权限下运行时才能访问它 我设法通过读取
  • 在 xpath/domdocument 查询中查找与给定字符串匹配的链接

    使用 Xpath 和 domDocument 获取与给定单词匹配的链接进行显示时遇到问题 一切似乎都进展顺利for i 0 i lt documentLinks gt length i 用来 谁能帮我解决我哪里出错了 html ol htm
  • 更新预填充数据库

    我为 Android 设备创建了一个问答游戏 我有一个数据库 在资产文件夹和 dbHelper 类中存在问题 一切正常 但现在我想修复一些拼写错误并添加更多问题 我需要更新数据库 但我不知道该怎么做 我在互联网上找到了这个 dbHelper
  • 单击事件在具有触摸事件的 iPad 上不起作用

    我正在页面链接上使用点击事件 在 iPad 上运行良好Safari 但是当我在同一页面上使用触摸事件时 单击事件将停止工作 iPad 上只有触摸事件有效 点击事件 link onclick onLinkClick 触摸事件 sdiv bin
  • 为什么 Application.Speech.Speak 单独读取一些数字而不是将它们放在一起?

    假设现在是 11 点 11 分 它读作 一一 小时 十一 分钟 如下所示 Sub TEST1 Application Speech Speak It is Hour Now hours and Minute Now minutes End
  • UnicodeWarning:Unicode 相等比较无法将两个参数转换为 Unicode

    我知道很多人以前遇到过这个错误 但我找不到解决我的问题的方法 我有一个想要规范化的 URL url u http www dgzfp de Dienste Fachbeitr C3 A4ge aspx EntryId 267 Page 5