2009-10-07 42 views
2

我正在开发一个应用程序使用web2py,我想生成一个csv文件,以便列成为行。web2py - python

e.g:文件生成为:

name mobile email Address 
    yyy  yyyyy  yyy  yyyyy 

我想为下面的设计要生成的文件:

name  yyy 
mobile yyyy 
email  yyyyyy 
Address yyyy 

我怎样才能做到这一点?

我用这个代码来生成CSV文件:

import gluon.contenttype 
response.headers['Content-Type'] = \ 
    gluon.contenttype.contenttype('.csv') 
response.headers['Content-disposition'] = 'attachment; filename=members_approaching_renewal_report.csv'\ rows=db().select(db.member.membership_id,db.member.first_name,db.member.middle_name,db.member.last_name,db.member.birthdate,db.member.membership_status,db.member.registration_date,db.member.membership_end_date) 
rows.colnames=('Membership Id','First Name','Middle Name','Last Name','Birthday Date','Membership Status','Registration Date','Membership ending Date') 
return str(rows) 

我应该如何修改这个代码,以使我想要什么?

回答

6

如果结果以列表的形式被称为results的列表,你的标题标题是在一个叫做列表headers可以调换它是这样的:

transposed = zip(headers, *results) 

然后输出为正常的,喜欢的东西:

import csv 
csv_writer = csv.writer(filename) 
csv_writer.writerows(transposed) 
+0

当我有记录从数据库返回 预先感谢 – Neveen 2009-10-07 13:29:20

+0

我不明白,我不使用这种方法,通过这种方式深深产生。不管记录的来源如何,此方法都应该如此。 – recursive 2009-10-07 13:31:05

+0

我有 rows = db()。select(db.member.membership_id,db.member.first_name,db.member.middle_name,db.member.last_name,db.member.birthdate,db.member.membership_status,db rows.colnames =('Membership Id','First Name','Middle Name','Last Name','Birthday Date','Membership Status',''Registration Date .'member.registration_date,db.member.membership_end_date) ','会员结束日期')​​ 如何使用“行”显示为csv文件? - >我用胶子方法,但我不能转置文件,如果你知道另一种方法,你可以请告诉我。 在此先感谢 – Neveen 2009-10-07 14:38:36