地理编码:地址表:将菲奥娜集读入Python字典需要花费大量时间。 我把一个点形状的读物读入菲奥娜的集合中。shapefile包含920万个点。这些要点包括文字地址和邮政编码。我还有一张桌子,有大约50万个地址。我想把这些点的坐标连接到这个表上 我试图把菲奥娜集读入一个Python字典,如果不满足条件,就排除一些记录。我的处理器运行频率为3.2Ghz,内存为16Gb。阅读花了一个多小时。我想由此产生的词典会太大而没有用处。按照我的方法: import fiona import numpy fiona_collection = fiona.open('addresses_points.shp') #the points file has a lot of addresses, most of them are not interesting for me. mycity_addresses = {} mycity_postcodes = xrange(1000, 20001) #series of postcodes I do want to read for i in fiona_collection: rec = fiona_collection.next() if int(rec['properties']['Postcode'][:4]) in mycity_postcodes: mycity_addresses[rec['id']] = rec

地理编码:地址表:将菲奥娜集读入Python字典需要花费大量时间。 我把一个点形状的读物读入菲奥娜的集合中。shapefile包含920万个点。这些要点包括文字地址和邮政编码。我还有一张桌子,有大约50万个地址。我想把这些点的坐标连接到这个表上 我试图把菲奥娜集读入一个Python字典,如果不满足条件,就排除一些记录。我的处理器运行频率为3.2Ghz,内存为16Gb。阅读花了一个多小时。我想由此产生的词典会太大而没有用处。按照我的方法: import fiona import numpy fiona_collection = fiona.open('addresses_points.shp') #the points file has a lot of addresses, most of them are not interesting for me. mycity_addresses = {} mycity_postcodes = xrange(1000, 20001) #series of postcodes I do want to read for i in fiona_collection: rec = fiona_collection.next() if int(rec['properties']['Postcode'][:4]) in mycity_postcodes: mycity_addresses[rec['id']] = rec,python,geocoding,fiona,Python,Geocoding,Fiona,总的来说,我想要的是用相应的坐标对地址表进行地理编码。做这件事的简单方法是什么?我对这方面不太了解,但听起来您正试图在合理的时间内连接大量数据。SQL就是为这个用例设计的——为什么不把数据放在SQL数据库中并在那里工作呢?听起来不错!我可以用Python来做吗?如何在SQL中存储坐标和额外信息字段?有没有一种简单的方法可以在不花费太多时间配置SQL server的情况下完成此操作?Python自带了内置的,尽管它的性能不如您设置的SQL server,因为数据库存储在硬盘上的单个文件中。谢谢您的

总的来说,我想要的是用相应的坐标对地址表进行地理编码。做这件事的简单方法是什么?

我对这方面不太了解,但听起来您正试图在合理的时间内连接大量数据。SQL就是为这个用例设计的——为什么不把数据放在SQL数据库中并在那里工作呢?听起来不错!我可以用Python来做吗?如何在SQL中存储坐标和额外信息字段?有没有一种简单的方法可以在不花费太多时间配置SQL server的情况下完成此操作?Python自带了内置的,尽管它的性能不如您设置的SQL server,因为数据库存储在硬盘上的单个文件中。谢谢您的帮助。我刚看过SQLite。我想进一步问另一个问题。我可以将Python对象存储在SQLite表中,例如将前者作为JSON对象倾倒吗?我在菲奥娜集合上修复了循环。这正在起作用。不过,设置输出字典需要很多时间。我尝试将每个菲奥娜记录写入SQLite表,但我开始有编码错误。我在Windows7机器上运行,终端用ASCII编码,所以不能处理西方非英语语言中的常见字符串。我读了一些关于将Windows终端的编码更改为UTF-8的文章。但这似乎是不可取的。我还尝试对要写入SQLite表的行中的每个元素进行.encode('utf-8'),但没有得到好的结果。有什么想法吗?