我有一组包含非结构化数据的7个文件,我正试图用Python将它们解析成7个不同的数据集,这些数据集是我使用beautifulsoup获得的。数据的呈现方式有很多种,我正努力通过正则表达式或其他解析包找到合适的方法。在
我将一段数据粘贴到pastebin:http://pastebin.com/sC9KbhbF
输出数据如下所示(我只是使用管道分隔字段来说明,我希望这些字段作为输出的单独列):
Street | City | Postal Code
jln.sidomulyo i-vi | cepu | 58312
jln.sitimulyo | cepu | 58312
lr.sitimulyo i-vi | cepu | 58312
lr.sitimulyo ia-iiia | cepu | 58312
lr.sitimulyo ib-iiib | cepu | 58312
lr.sitimulyo ic | cepu | 58312
lr.sitimulyo iic | cepu | 58312
jln.sorogo | cepu | 58313
.....
jln.akhmad dakhlan kel.ciamis | ciamis | 46211
jln.akhmad dakhlan kel.linggasari | ciamis | 46216
.....
造成这一困难的模式:
1) 用逗号(例如lr。sitimulyo i-vi,ia iiia)在单独的线路上保持完整的街道名称
2) 消除两个字母前缀句点后的空格(例如lr。sitimulyo vs。sidomulyo路)
3) 删除嵌套地址的街道名称(例如。akhmad路达克兰凯尔·西亚米斯, akhmad路达克兰克尔林加萨里)在
我尝试过一些不同的方法,但还没有接近到目前为止,所以我没有包括那些片段。我用来获取数据的代码如下:
^{pr2}$
它的工作原理如下:首先使用这些regex和replection使输入文本更易于管理:
那么你可以使用这个正则表达式
^{pr2}$如果我们走现在转变的第一条线
您可以看到(注意arg1前面实际上有一个新的折线图,因此您最好检查它是否存在并将其删除)
如果我们用这样的格式
您可以看到(arg1在arg1[0]上有新行,您需要删除它)
在这里,当您通过“,”字符将arg2拆分时,需要对其进行itterate,并使入口像这样。在
唯一的问题是这些线路
你有一个基本的5个空格(或者更多的我想)和基本的arg1需要所有的东西,直到这一部分我假设“i-vii,ia,ib,v/17”。应该有一个简单的解决办法,但我想不出来
哎哟,忘了加这样的台词
本质上没有arg4,所以您只需查看arg4是否为空或不存在(不知道它在python中是如何工作的)
我希望有帮助
相关问题 更多 >
编程相关推荐