蟒蛇 - 得到查询字符串的一部分导致

问题描述:

我有一个小的脚本下载我一个结果从查询和导出为.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 

问候

你要保持一切,直到第一个“_”,你可以简单地使用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的查询,该怎么办?如果我将他们的结果加入到一个中? –