我使用csv
Python包閱讀這樣一個CSV文件:python中是否有強類型的csv閱讀器?
r = csv.DictReader(open(r'd:\aaa.csv', 'rb'))
for row in r:
print row
的問題是,在產生的字典中的所有值都是字符串,我需要他們轉換爲相應的類型。我有一個列名稱和類型之間的映射。
這裏有沒有捷徑,還是我必須自己做這一切?
編輯
我已經標記爲https://stackoverflow.com/a/9720733/80002答案。只是,我稍微修改了它。沒有一點用DictReader
如果我要去反正進行後處理,所以這是我的斯文的代碼的修改:
r = csv.reader(open(r'd:\aaa.csv', 'rb'))
header = r.next()
converters = [converters_map[c] for c in header]
for row in r:
row = {title:converter(value) for title, converter, value in zip(header, converters, row)}
print row
如果你最終編寫一個包裝'csv'的庫來做到這一點,我相信其他人也會從中受益。這就是說,它不應該那麼難。 – 2012-03-15 13:04:37
不完全是你所要求的,但相關:使用['quoting = csv.QUOTE_NONNUMERIC'](http://docs.python.org/library/csv.html#csv.QUOTE_NONNUMERIC)將未加引號的字段轉換爲'float'。 – 2012-03-15 13:07:54
我不知道任何準備好這樣使用的東西。所以我會自己寫映射閱讀器。如果你看一下'DictReader'的源代碼,它非常簡單(它甚至不會繼承任何東西)。 – 2012-03-15 13:09:19