2016-04-27 97 views
0

我有一個小的腳本下載我一個結果從查詢和導出爲.csv蟒蛇 - 得到查詢字符串的一部分導致

yy = raw_input("Enter year: ") 
mm = raw_input("Enter month: ") 

try: 

    conn = psycopg2.connect("dbname='xxx' user='xxx' host='xxx' password='xxx'") 
    cur=conn.cursor() 

query1 = """SELECT name FROM xxx where name like '%{0}_{1}%' """.format(yy,mm) 
     cur.execute(query1) 
     results = cur.fetchall() 
     for row in results: 
     print row 

csv_file = open('errors.csv','wb')# wb - query importing line by line 
myFile = csv.writer(csv_file) 
myFile.writerows(results) 
csv_file.close() 

我需要的是從查詢結果字符串的一部分。 Atm我的結果看起來像這樣:

1-GRB-804_2016_02_03__08_42_12 
1-GRB-804_2016_02_05__11_04_47 
1-GRB-804_2016_02_06__08_20_15 
1-GRB-804_2016_02_08__08_06_13 
1-GRB-804_2016_02_08__08_30_58 

而我想要的是得到第一條直到它符合標誌'_'。 那麼結果將是:

1-GRB-804 
1-GRB-804 
1-GRB-804 
1-GRB-804 
1-GRB-804 

問候

回答

1

你要保持一切,直到第一個「_」,你可以簡單地使用string.split

>>> s = '1-GRB-804_2016_02_03__08_42_12' 
>>> s.split('_') 
['1-GRB-804', '2016', '02', '03', '', '08', '42', '12'] 
>>> s = s.split('_')[0] 
>>>> s 
'1-GRB-804' 

所以你的情況,你會需要做的:

for row in results: 
    print row.split('_')[0] 
+0

如果我同時使用來自postgres和microsoft sql server的查詢,該怎麼辦?如果我將他們的結果加入到一箇中? –