python - 用普通字母替换特殊的 unicode 字符
问题描述
在我的 JSON 数据中,有特殊的 Unicode 字符,如“\u00E0”、“\u00FB”等。我想用普通字母替换所有这些字符。例如,"\u00E0"与"à"和"\u00FB"与"û"。有很多这样的角色,所以我会找到他们的列表。
我已经尝试将其替换为
dictData.encode('utf-8').decode('unicode_escape')
和
dictData.replace("\u00E0", "à").replace("\u00E4", "ä").replace("\u00E2", "â").replace("\u00E7", "ç").replace("\u00E8", "è").replace("\u00E9", "é").replace("\u00EA", "ê").replace("\u00EB", "ë").replace("\u00EE", "î").replace("\u00EF", "ï").replace("\u00F4", "ô").replace("\u00F6", "ö").replace("\u00F9", "ù").replace("\u00FB", "û").replace("\u00FC", "ü").replace("\u00FC", "ù").replace("\u00FB", "û").replace("\u00FC", "î").replace
但两者都没有奏效。这是我的代码
import re, sys
from urllib.request import urlopen
import json
patternScript = re.compile("""<script>window\.\_\_WEB\_CONTEXT\_\_\=\{pageManifest:(.*?)\};</script>""", re.DOTALL)
with urlopen("https://www.tripadvisor.ch/Hotel_Review-g188113-d228146-Reviews-Coronado_Hotel-Zurich.html") as response:
source = str(response.read())
dictData = patternScript.search(source).group(1).replace('\\ "', '\\"').replace('\\"', '\"').replace("\'", "\\'")
dictData2 = dictData.encode('utf-8').decode('unicode_escape')
#dictData2 = dictData.replace("\u00E0", "à").replace("\u00E4", "ä").replace("\u00E2", "â").replace("\u00E7", "ç").replace("\u00E8", "è").replace("\u00E9", "é").replace("\u00EA", "ê").replace("\u00EB", "ë").replace("\u00EE", "î").replace("\u00EF", "ï").replace("\u00F4", "ô").replace("\u00F6", "ö").replace("\u00F9", "ù").replace("\u00FB", "û").replace("\u00FC", "ü")
jsonData = json.loads(dictData2)
这是 JSON 数据的示例:
[{'long': 'Z\\u00FCrich, Schweiz', 'text': 'Lieber Gast\\n\\nDanke f\\u00FCr die nette R\\u00FCckmeldung zu Ihrem Aufenthalt im Hotel Coronado. Sch\\u00F6n, konnten Sie die Tramstation Milchbuck gleich gegen\\u00FCber des Hotels, mit direkten Verbindungen ins Stadtzentrum und zum Flughafen Z\\u00FCrich f\\u00FCr sich nutzen.\\n\\nWir freuen uns auf Ihren n\\u00E4chsten Aufenthalt und verbleiben mit\\n\\nHerzlichen Gr\\u00FCssen \\n\\nOlivia Olgiati\\n\\n'}]
你有什么建议吗?先感谢您!
解决方案
希望它对你有用:
with urlopen("https://www.tripadvisor.ch/Hotel_Review-g188113-d228146-Reviews-Coronado_Hotel-Zurich.html") as response:
source = response.read()
dictData = patternScript.search(source.decode("utf-8")).group(1)
jsonData = json.loads(dictData)
推荐阅读
- flutter - 在 modalBottomSheet 中调用函数时更改有状态小部件中的变量
- objective-c - 如何与 Socket.io 连接?在目标 c 中使用 Swift 5 中的 socket.io
- arrays - React Hooks - 动态渲染文本输入并将输入存储为一个数组
- windows - 如何在 for 循环的每次迭代后向字符串添加字符?
- android - 无法弄清楚如何将此字段保存到 Android 房间的数据库中
- oracle - 变异,触发器/函数在使用触发器时可能看不到错误
- vba - 如何在 Outlook VBA 中访问 EmbeddedItem 附件
- node.js - 将 Node Express 应用程序部署到服务于 React 应用程序的 Heroku
- haskell - 如何渲染列表的动态(`Dynamics t [a]`)?
- azure-api-management - 尝试使用 API-M 部署 API 端点的金丝雀,但后端服务 url 在后端部分被覆盖