<p>您应该使用<a href="https://docs.python.org/3/library/csv.html" rel="nofollow noreferrer">the ^{<cd1>} module</a>,而不是手动解析CSV文件</p>
<p>这将导致更简单的脚本,并有助于优雅地处理边缘情况(例如标题行、引用不一致的字段等)</p>
<pre><code>import csv
with open('example.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row)
</code></pre>
<p>输出:</p>
<pre><code>$ python3 parse-csv.py
OrderedDict([('cdrRecordType', '1'), ('globalCallID_callManagerId', '3'), ('globalCallID_callId', '9294899')])
OrderedDict([('cdrRecordType', '1'), ('globalCallID_callManagerId', '3'), ('globalCallID_callId', '9294933')])
</code></pre>
<hr/>
<p>如果您打算手动解析,以下是一种方法:</p>
<pre><code>parsed_list = []
with open('example.csv') as myfile:
firstline = True
for line in myfile:
# Strip leading/trailing whitespace and split into a list of values.
values = line.strip().split(',')
# Remove surrounding double quotes from each value, if they exist.
values = [v.strip('"') for v in values]
# Use the first line as keys.
if firstline:
keys = values
firstline = False
# Skip to the next iteration of the for loop.
continue
parsed_list.append(dict(zip(keys, values)))
for p in parsed_list:
print(p)
</code></pre>
<p>输出:</p>
<pre><code>$ python3 manual-parse-csv.py
{'cdrRecordType': '1', 'globalCallID_callManagerId': '3', 'globalCallID_callId': '9294899'}
{'cdrRecordType': '1', 'globalCallID_callManagerId': '3', 'globalCallID_callId': '9294933'}
</code></pre>