0

我正在评估数十万个 html 文件。我正在寻找文件的特定部分。文件的创建方式可能存在细微差异

例如,在一个文件中,我可以有一个节标题(在我将其转换为大写并拆分然后加入文本以消除可能不一致的空白之后:

u'KEY1A\x97RISKFACTORS'

在另一个文件中,我可以:

'KEY1ARISKFACTORS'

我正在尝试创建一个可能响应的字典,并且我想比较这两者并得出结论它们是相等的。但是我尝试运行第一个字符串以删除 '\97 的每次替换似乎都不起作用

有很多具有各种实体表示的键的变体,所以我真的很想或多或少地自动创建一个字典,所以我有类似的东西:

key_dict={'u'KEY1A\x97RISKFACTORS':''KEY1ARISKFACTORS',''KEY1ARISKFACTORS':'KEY1ARISKFACTORS',. . .}

我假设自从我跑步时

S1='A'
S2=u'A'
S1==S2

我明白了

True

一旦处理了html实体,我应该能够比较这些

我特别想做的是

new_string=u'KEY1A\x97RISKFACTORS'.replace('|','')

我有一个错误

对不起,我从昨晚开始就一直在这。SLott 指出了一些东西,我发现我使用了错误的标签我希望这更有意义

4

2 回答 2

2

你是正确的,如果 S1='A' 和 S2 = u'A',那么 S1 == S2。您可以做一个简单的测试,而不是假设这一点:

key_dict= {u'A':'Value1',
        'A':'Value2'}

print key_dict
print u'A' == 'A'

这输出:

{u'A': 'Value2'}
True

解决了,我们来看看:

new_string=u'KEY1A\x97DEMOGRAPHICRESPONSES'.replace('|','')

这里有一个问题,\x97 是您要在目标字符串中替换的值。但是,您的搜索字符串是“|”,它是十六进制值 0x7C(ascii 和 unicode),显然不是您需要替换的值。即使目标和搜索字符串都是 ascii 或 unicode,您仍然找不到 '\x97'。第二个问题是您试图在 unicode 字符串中搜索非 unicode 字符串。最简单且最有意义的解决方案是简单地搜索 u'\x97':

print u'KEY1A\x97DEMOGRAPHICRESPONSES'
print u'KEY1A\x97DEMOGRAPHICRESPONSES'.replace(u'\x97', u'')

输出:

KEY1A\x97DEMOGRAPHICRESPONSES
KEY1ADEMOGRAPHICRESPONSES
于 2010-08-21T23:54:45.423 回答
1

为什么不明显.replace(u'\x97','')?这种想法'|'从何而来?

>>> s = u'KEY1A\x97DEMOGRAPHICRESPONSES'
>>> s.replace(u'\x97', '')
u'KEY1ADEMOGRAPHICRESPONSES'
于 2010-08-21T23:26:54.680 回答