Re: [問題]處理CSV檔的問題
※ 引述《tt812 (DW)》之銘言:
: 我現在有一個CSV檔是從網路上面抓下來的
: 因原本欄位不夠多所以要增加欄位,
: 所以用input output 的方法
: 其中因爲第三欄的資料要跟據表頭再分出不同欄
: 大概是這樣:
: stitle,xpostDate,xbody,xcreatedDate,xAddress,
: "台北市私立寶貝托兒所","2010/8/3 上午 11:48:00","<b><font color=”#333366”>機構
: 名稱:台北市私立寶貝托兒所</font></b><br /><br />負責人姓名:林秀娟<br /><br />聯
: 絡人姓名:林秀娟<br /><br />電話:2305-1623<br /><br />立案字號:北市社五(立
: )676<br /><br />立案日期:0870817<br /><br />核定收托人數:31<br /><br />托收對象:
: 托收對象年齡0-2歲0人; 2-6歲31人; 6-12歲0人<br /><br />是否備有交通車:無<br
: /><br />地址:臺北市100寧波西街181巷44號1樓<br /><br /><a href=”
: http://www.dosw.taipei.gov.tw/a/a0104.asp” target=”_blank”>婦女福利及兒童托育
: 科</a><br />","2011/9/16 上午 01:46:00","臺北市寧波西街181巷44號1樓
: ","121.509605407715","25.026424407959"
: 希望可以把機?名稱,負責人姓名,聯絡人姓名,電話,立案字號等各獨立出一欄
: 目前思考方向是用,取代:然後表頭append上去但不得其門而入,希望各位大大幫忙
資料不多的話 提供一個笨方式
因為有中文 要用unicode 我是用python2.5.4 在idle下 有些decode小問題
觀念比較重要
首先發現 ":" 是個不錯的分段點 通常在":"之後就是資料
資料的結尾大部份是"<ooxx//>" 之類的東西
所以寫一個笨的parser
def findcontent(ustr,hstr,tstr):
'''找出hstr與tstr之間的內容'''
h_index = ustr.index(hstr) #找到此字串的index
start = h_index + len(hstr) #內容物的起始index
t_index = ustr.index(tstr,start) #從start後開始找
end = t_index
return ustr[start:end]
來回傳結果
假設第三欄的資料叫 third_str
比方你要找 機構名稱
就用 findcontent(third_str.decode("cp950"),
"機構名稱:".decode("cp950"),
"</font>".decode("cp950"))
"機構名稱:".decode("cp950") 是在idle下用的
一般來說 寫 u"機構名稱:" 就行了
要找 負責人姓名
就用 findcontent(third_str.decode("cp950"),
"負責人姓名:".decode("cp950"),
"<br />".decode("cp950"))
以此類推 應該就行了
有錯請指正 有更好的方法也請與大家分享~
感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.249
推
09/23 15:19, , 1F
09/23 15:19, 1F
→
09/23 15:32, , 2F
09/23 15:32, 2F
推
09/23 16:49, , 3F
09/23 16:49, 3F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章