Skip to main content
 首页 » 编程设计

python之是否可以找到或匹配两个具有不同特殊字符的名称django

2024年11月24日24TianFang

我试图在我的Django应用程序中使用OpenstreetMaps API填充某个州的城市。该数据库已经填充了一些城市。
我面临重复数据问题,因为城市中的名称有时会带有特殊字符。

例如,在国家Turkey中,州Bursa具有城市Gursu。
我的数据库有一个名为Gürsu的城市对象。
Openstreet Map API的城市名称为Gürsü。
我正在尝试找到一种解决方案,以使现有城市与特殊字符名称匹配,并在存在的情况下对其进行更新。这样我就可以避免重复。

请您参考如下方法:

涉及的解决方案是根据UAX#10匹配文本。您可以在数据库中或在Python中(可能使用PyICU)做到这一点。以下是一些简短的代码演示:

#!/usr/bin/env perl 
use 5.010; 
use utf8; 
use open qw(:std :encoding(UTF-8)); 
use Unicode::Collate qw(); 
 
my $c = Unicode::Collate->new(normalization => undef, level => 1); 
my @g = qw(Gursu Gürsu Gursü Gürsü); 
 
for my $o (@g) { 
    for my $i (@g) { 
        say "$i matches $o" if -1 != $c->index($o, $i, 0); 
    } 
} 
 
__END__ 
Gursu matches Gursu 
Gürsu matches Gursu 
Gursü matches Gursu 
Gürsü matches Gursu 
Gursu matches Gürsu 
Gürsu matches Gürsu 
Gursü matches Gürsu 
Gürsü matches Gürsu 
Gursu matches Gursü 
Gürsu matches Gursü 
Gursü matches Gursü 
Gürsü matches Gursü 
Gursu matches Gürsü 
Gürsu matches Gürsü 
Gursü matches Gürsü 
Gürsü matches Gürsü