web2py - python - PullRequest
       15

web2py - python

2 голосов
/ 07 октября 2009

Я занимаюсь разработкой приложения с использованием web2py и хочу создать файл csv, чтобы столбцы стали строками.

Например: файл генерируется как:

  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)

Как мне отредактировать этот код, чтобы сделать то, что я хочу?

1 Ответ

6 голосов
/ 07 октября 2009

Если ваши результаты находятся в списке списков с именем results, а заголовки заголовков находятся в списке с именем headers, вы можете транспонировать его так:

transposed = zip(headers, *results)

Затем выведите как обычно, с чем-то вроде:

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