Python:在文本文件中查找表

时间:2016-01-17 08:09:41

标签: python awk lookup

我正在将一个大的csv文件输入数据库。其中两个输入字段是索引,用于在单独的查找表文件中查询转换表。我可以在awk中轻松地做到这一点:

RESULT = $(awk -v CODE=$FIELD8 '$1 == CODE {print $3}' $FILE_WITH_TABLE)

什么是等效的python代码? 我是否应该将这两个文件读入数组以便更快速地查找(248个条目中有18379个字节,4113个条目中有另外360653个字节)?

我发现了一些关于pythons哈希函数的东西,但看不到将它应用于这个问题。

编辑添加(如建议的话)要解释的两行主数据文件:

35313,"ZULZ","small_airport","Luzhou Airport",28.85219955444336,105.39299774169922,,"AS","CN","CN-51","Luzhou","yes","ZULZ","LZO",,,"http://en.wikipedia.org/wiki/Luzhou_Airport",
308767,"ZUMH","small_airport","Öndörkhaan Airport",47.30486,110.6092,3410,"AS","MN","MN-039","Öndörkhaan","no","ZUMH","UNR",,,,"Undur Khan"

第9个字段(值“CN”和“MN”)必须用于通过ISO代码查询国家/地区表,以下是该文件中的两个对应行:

302627,"CN","China","AS","http://en.wikipedia.org/wiki/China",
302650,"MN","Mongolia","AS","http://en.wikipedia.org/wiki/Mongolia",

同样,基本文件的第十个字段用于查询另一个表,这次是按ISO编码的每个国家/地区的区域。需要的中间输出是输入行,由csv.reader解析为字段(没有问题)但是第9和第10个字段填入了查找的值(“中国”和“蒙古”)。 因此,如果使用目录,它将包含aux文件中的第二个字段作为搜索索引,第三个字段作为要返回的数据。

省略其他查询以保持清晰,机制完全相同。

0 个答案:

没有答案