我试图在google geocoding api中使用一个字符串,我已经检查了很多线程,但是我仍然面临问题,我不知道如何解决它。
我需要addresse1是一个没有任何特殊字符的字符串。地址1例如:“32 rue d'Athènes Paris France”。
addresse1= collect.replace(' ','+').replace('\n','')
addresse1=unicodedata.normalize('NFKD', addresse1).encode('utf-8','ignore')
这里我有一根没有口音的绳子。。。不,不。。。它不是字符串而是字节。所以我按照建议做了解码:
addresse1=addresse1.decode('utf-8')
但是地址1和开始时完全一样。。。我该怎么办?我做错什么了?或者我不懂的unicode?还是有更好的解决方案?
谢谢
圣潘。
您可能是指
.encode('ascii', 'ignore')
,删除非ASCII字符。UTF-8包含所有字符,因此对其进行编码不会消除任何字符,使用它的编解码循环是no-op这取决于你想做什么。
如果只想删除变音符号而不丢失所有其他非ASCII字符,则可以在NFKD标准化后读取每个字符的
unicodedata.category
,并删除M类中的字符如果您想将ASCII翻译成需要自定义替换的特定语言问题(例如在德语中
ö
变成oe
,但在瑞典语中不是)。如果您只是想将字符串伪造成ASCII,因为其中包含非ASCII字符会导致某些代码中断,那么修复该代码以使其与所有Unicode字符一起正常工作当然比损坏良好的数据要好得多。字母
è
不能用ASCII编码,但99.9989%的字符也不能编码,因此很难使其“特殊”。只支持ASCII的代码是蹩脚的。Google Geocoding API可以很好地与Unicode一起工作,因此没有明显的理由需要您做这些事情。
预计到达时间:
啊,你需要对你注入一个URL的数据进行URL编码。这不仅仅是针对Unicode的,上面的代码也会被许多ASCII标点符号打断。使用
urllib.quote
对单个字符串进行编码,或使用urllib.encode
转换多个参数:(在Python 3中是
urllib.parse.quote
和urllib.parse.encode
,它们会自动选择UTF-8,因此您不必在那里手动编码。)json.loads
读取字节字符串,因此您应该可以安全地省略UTF-8解码。无论如何,json.load
将直接从类似文件的对象中读取,因此您根本不必将数据加载到字符串中:使用第三方包:^{}
您可以使用python中的
translate()
方法。 以下是从tutorialspoint.com复制的示例:这将输出:
因此,您可以定义希望替换哪些字符比使用
replace()
更容易相关问题 更多 >
编程相关推荐