DictReader错误:预期字符串或Unicode对象,发现列表

2024-09-25 04:33:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用以下权限阅读google sheet文档:

    opener = urllib2.build_opener()
    opener.addheaders = [('Accept-Charset', 'utf-8')]
    response = opener.open(
       "https://docs.google.com/spreadsheets/d/ID/export?format=csv"
    )
    csv_records = unicodecsv.reader(response, encoding='utf-8')
    translations = csv.DictReader(csv_records) 
    for row in translations:
       print row["age"]

但是,我得到一个错误:expected string or Unicode object, list found可能是字段名。在

怎么了?在

堆栈跟踪

^{pr2}$

打印

print translations
print csv_records
<csv.DictReader instance at 0x11163fa28>
<unicodecsv.py2.UnicodeReader object at 0x11160da50>

Tags: csv权限objectresponsegoogleopeneratutf
1条回答
网友
1楼 · 发布于 2024-09-25 04:33:34

据我所知,unicodesv返回一个列表,在您的例子中是csv_records。在

这是取自github README

>>> import unicodecsv as csv
>>> from io import BytesIO
>>> f = BytesIO()
>>> w = csv.writer(f, encoding='utf-8')
>>> _ = w.writerow((u'é', u'ñ'))
>>> _ = f.seek(0)
>>> r = csv.reader(f, encoding='utf-8')
>>> next(r) == [u'é', u'ñ']
True

请看最后的比较。在

您将这个返回的列表放入csv.DictReader(),这是不必要的,因为结果已经在csv_records内。在

打印出这个变量,看看里面是什么。在

相关问题 更多 >