python 中的解码字符串问题
Issue in decoding string in python
我有一组字符串需要解码。字符串格式因网站上的产品而异。所以它非常不可预测。下面给出了几个格式示例:
1. longDescription":"\u003cul\u003e \u003cli\u003eTender grill’d bites made " (unicode and symbol combination)
2. longDescription":"Goodness You Can See™" (all decoded, to be picked as is)
3. longDescription":"With a wide variety of headphones, \u003cbr /\u003e \u003cb\u003e\u003cbr /\u003eBlackWeb Flat CAT6 Network Cable:\u003c/b\u003e \u003cbr /\u003e \u003cul\u003e \u003cli\u003eFlat CAT6 Network Cable\u003c/li\u003e \u003cli\u003eLength: 14'\u003c/li\u003e \u003cli\u003eUltra-slim design\u003c/li\u003e \u003cli\u003e1GBPS" (all unicode)
等产品中提取这个长描述键(后端)或(前端的项目符号列表)
我试过以下代码:
if '\u' in longdescription:
try:
#temp['Key_Features'] =longdescription
temp['Key_Features'] =longdescription.decode("unicode-escape").encode()
except Exception as e:
temp['Key_Features'] =HTMLParser.HTMLParser().unescape(longdescription)
else:
temp['Key_Features'] =longdescription
以上情况我都分别试过,上面的是组合的。这些适用于大多数情况,但在第一种情况下,它也会对 ' 符号(或任何其他符号)进行编码和解码,我的输出变为:
Tender grillâd bites (see the change in grill'd)
此代码依赖于 python2,因此请求 python2 中的解决方案。另外,我可以接受输出中的 HTML 标签。只需要有一个适用于所有三种情况的代码。谢谢。
现在 python3 已修复此问题。使用下面的代码进行转换:
temp['Key_Features']=longDescription.encode().decode('unicode-escape').encode('latin1').decode('utf8').replace ('&','&').replace(' ','').replace('"','"')
发生这种情况是因为数据采用不同的编码格式,无法由单个 encoding/decoding 处理。以上逻辑适用于所有人。
我有一组字符串需要解码。字符串格式因网站上的产品而异。所以它非常不可预测。下面给出了几个格式示例:
1. longDescription":"\u003cul\u003e \u003cli\u003eTender grill’d bites made " (unicode and symbol combination)
2. longDescription":"Goodness You Can See™" (all decoded, to be picked as is)
3. longDescription":"With a wide variety of headphones, \u003cbr /\u003e \u003cb\u003e\u003cbr /\u003eBlackWeb Flat CAT6 Network Cable:\u003c/b\u003e \u003cbr /\u003e \u003cul\u003e \u003cli\u003eFlat CAT6 Network Cable\u003c/li\u003e \u003cli\u003eLength: 14'\u003c/li\u003e \u003cli\u003eUltra-slim design\u003c/li\u003e \u003cli\u003e1GBPS" (all unicode)
等产品中提取这个长描述键(后端)或(前端的项目符号列表)
我试过以下代码:
if '\u' in longdescription:
try:
#temp['Key_Features'] =longdescription
temp['Key_Features'] =longdescription.decode("unicode-escape").encode()
except Exception as e:
temp['Key_Features'] =HTMLParser.HTMLParser().unescape(longdescription)
else:
temp['Key_Features'] =longdescription
以上情况我都分别试过,上面的是组合的。这些适用于大多数情况,但在第一种情况下,它也会对 ' 符号(或任何其他符号)进行编码和解码,我的输出变为:
Tender grillâd bites (see the change in grill'd)
此代码依赖于 python2,因此请求 python2 中的解决方案。另外,我可以接受输出中的 HTML 标签。只需要有一个适用于所有三种情况的代码。谢谢。
现在 python3 已修复此问题。使用下面的代码进行转换:
temp['Key_Features']=longDescription.encode().decode('unicode-escape').encode('latin1').decode('utf8').replace ('&','&').replace(' ','').replace('"','"')
发生这种情况是因为数据采用不同的编码格式,无法由单个 encoding/decoding 处理。以上逻辑适用于所有人。