作者lh1122 (琳)
看板Python
标题[问题] 抓格式不整齐的csv
时间Thu Mar 29 16:00:25 2018
大家好,
csv某栏的资料里面包含逗号,
当用python抓的时候就会产生问题,
想请教有什麽方式可以抓某栏格式不整齐的csv资料。谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.157.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1522310427.A.F6E.html
1F:推 kenduest: 你的 cvs 内容内,有逗点的资料有用双引号包起来吗? 03/29 16:12
2F:→ lh1122: 没有用双引号包,资料来自老师,但笔数过多也无法人工加 03/29 16:28
3F:→ lh1122: 双引号 03/29 16:28
4F:推 ddavid: 如果後栏是数字的话就还有机会,你可以在这一栏特别处理读 03/29 16:31
5F:→ ddavid: 到数字为止(前提是这栏里面没数字) 03/29 16:31
6F:→ ddavid: 或者这一栏如果「一定有刚好一个逗号」的话,你可以当成两 03/29 16:32
7F:→ ddavid: 栏来读,再合并并补上中间的逗号 03/29 16:32
8F:→ ddavid: 若没以上这些比较好处理的情况,要程式自动处理就不容易了 03/29 16:33
9F:→ lh1122: 该栏像人的一般叙述,所以有多个逗号,部分可能也有数字, 03/29 16:43
10F:→ lh1122: 此外下一栏还是文字 03/29 16:43
11F:→ Jeffrey11061: 栏位内容有没有什麽规则呢? 03/29 16:43
12F:→ lh1122: 感觉没有,属於人的描述,有逗号、数字、文字 03/29 16:47
13F:推 Kazimir: 如果只有这一栏是这种情况 那你就把切开来会比正常多 03/29 16:56
14F:→ Kazimir: 几栏的那些挑出来 特别处理以後再放回去 03/29 16:57
15F:推 Jeffrey11061: 目前想到可以写个file I/O的script 将逗点数量不正 03/29 17:03
16F:→ Jeffrey11061: 确的lines滤出来另外处理 03/29 17:03
17F:→ lh1122: 想问K大要怎麽切呢,要依据什麽切? 03/29 17:18
18F:→ lh1122: 也想问J大要依据什麽过滤呢? 03/29 17:19
19F:推 vfgce: 不考虑放个资料图给大家看一下你的资料长什麽样? 03/29 17:19
20F:推 Jeffrey11061: line by line读取,count逗号数量,正确的话将该行 03/29 17:27
21F:→ Jeffrey11061: 写到file A,否则写到file B 03/29 17:27
23F:→ lh1122: 这是模拟资料,概念是地址这栏有很多逗号,导致格式不整 03/29 17:29
24F:→ lh1122: 齐了,但真实资料中的下一栏是文字,非影像中的数字 03/29 17:29
25F:→ Jeffrey11061: 用纯文字方式开启可能比较好让大家观察 03/29 17:30
26F:推 vfgce: 你的逗号看来是全形,应该不影响啊..... 03/29 17:36
28F:推 flarehunter: 用regex找电话号码的栏位,前面的都当成地址行不行 03/29 18:10
29F:→ iitze: 反过来抓,後面三个栏位保留,前面合并 03/29 18:16
30F:推 vfgce: 假设你的资料都是高雄,line 为读入的一行 03/29 18:32
31F:→ vfgce: a,b=line.split('07-') 03/29 18:32
32F:→ vfgce: a就是地址部分,b自行把'07-'补上,再做一次split 03/29 18:33
33F:推 hsnusonic: 如果资料是你贴的这样,从後面切回来就好啦,rsplit(‘ 03/29 21:06
34F:→ hsnusonic: ,’,5) 03/29 21:06
35F:→ lh1122: 感谢各位前辈的慷慨帮助,等我拿到真实资料就来试试,再 03/29 23:19
36F:→ lh1122: 次感谢 03/29 23:19
37F:推 junkuo: 这图里面是不是有个资?要注意喔,会被告的 03/30 10:12
39F:→ lh1122: 谢谢J大提醒,这是开放式资料下载来的 03/30 11:32
40F:→ lh1122: 也谢谢N大我来研究看看 03/30 11:32