Python csv:使用不同的变量名存储列表,然后逐行导出
下面是我在postgresql中获取sql结果的python脚本Python csv:使用不同的变量名存储列表,然后逐行导出,python,python-2.7,csv,Python,Python 2.7,Csv,下面是我在postgresql中获取sql结果的python脚本 import sys #set up psycopg2 environment import psycopg2 #driving_distance module query = """ select * from driving_distance ($$ select gid as id, start_id::int4 as source,
import sys
#set up psycopg2 environment
import psycopg2
#driving_distance module
query = """
select *
from driving_distance ($$
select
gid as id,
start_id::int4 as source,
end_id::int4 as target,
shape_leng::double precision as cost
from network
$$, %s, %s, %s, %s
)
"""
#make connection between python and postgresql
conn = psycopg2.connect("dbname = 'TC_routing' user = 'postgres' host = 'localhost' password = '****'")
cur = conn.cursor()
#count rows in the table
cur.execute("select count(*) from network")
result = cur.fetchone()
k = result[0] + 1
#run loops
rs = []
i = 1
while i <= k:
cur.execute(query, (i, 1000000, False, False))
rs.append(cur.fetchall())
i = i + 1
j = 0
h = 0
ars = []
vars()[str(j)] = ars
element = list(rs)
while j <= 2:
while h <= 15:
rp = element[j][h][2]
ars.append(rp)
h = h + 1
else:
h = 0
j = j + 1
conn.close()
import csv
#export data in every row
with open('test.csv', 'wb') as f:
writer = csv.writer(f, delimiter = ',')
writer.writerow(ars)
我想得到下面的csv文件
也就是说,将第一行分配给ars0,第二行分配给ars1,第三行分配给ars2,我使用vars[strj]=ars使变量名arsj在while循环中增加,但我的输出仅在第一行
部分视图
我应该在脚本中的何处修改
我正在Windows 8.1 x64下使用python 2.7.6和pyscripter。欢迎给我任何建议,非常感谢 旁白:vars[strj]=ars-谁教你的?也许你有一个老敌人,他试图阻碍你对Python的理解,导致你的项目失败?Heinz,不确定你到底是怎么完成的,这有点难以理解,但我知道如果你给writerow打个电话,它只写一行。是否需要循环ars的每个元素并为ars的每个元素i调用writerow?一旦得到一行,将其写入csv并使ars为空。不要一次追加所有元素。