擅长:python、mysql、java
<p>您可以通过将<code>csv.reader</code>(而不是<code>csv.DictReader</code>)为每一行提供的每个数据列表转换成具有所需布局的字典,从而在文件中生成客户列表。在</p>
<p>在下面的代码中,我使用<code>collections.namedtuple</code>,因为我认为它比使用dictionary <code>dct['keyname']</code>语法生成更可读的代码。在</p>
<pre><code>from collections import namedtuple
import csv
import json
try:
from itertools import imap
except ImportError: # Python 3
imap = map
with open('FDimport.csv', 'rb') as csvfile:
FIELD_NAMES = 'name', 'company_reg_no', 'phone', 'date', 'address'
Customer = namedtuple('Customer', FIELD_NAMES)
reader = csv.reader(csvfile, FIELD_NAMES)
info = [dict(name=customer.name,
custom_fields=dict(
company_reg_no=customer.company_reg_no,
phone=customer.phone,
date=customer.date,
address=customer.address))
for customer in imap(Customer._make, reader)]
print(json.dumps(info, indent=4))
</code></pre>