蟒蛇 - 得到查询字符串的一部分导致
问题描述:
我有一个小的脚本下载我一个结果从查询和导出为.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]
如果我同时使用来自postgres和microsoft sql server的查询,该怎么办?如果我将他们的结果加入到一个中? –