首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csv到OrderedDict

csv到OrderedDict
EN

Stack Overflow用户
提问于 2011-05-27 02:09:47
回答 5查看 8.3K关注 0票数 4

如何从csv生成OrderedDict?有什么功能吗?

csv:

代码语言:javascript
复制
1 one
2 two

OrderedDict:

代码语言:javascript
复制
OrderedDict((('1', 'one'), ('2', 'two')))
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-27 02:35:24

如果您的csv有两列,如您的问题所述,您可以这样做:

代码语言:javascript
复制
import csv
import collections

with open('foo.csv','rb') as f:
    r = csv.reader(f)
    od = collections.OrderedDict(r)

如果csv文件中的行格式化为key, value1, value2, value3,您将执行以下操作:

代码语言:javascript
复制
with open('foo.csv','rb') as f:
    r = csv.reader(f)
    od = collections.OrderedDict((row[0], row[1:]) for row in r)
票数 9
EN

Stack Overflow用户

发布于 2019-06-03 12:39:23

在Python3中,CSV模块可以导入CSV文件并将行直接转换为OrderedDict实例,键的顺序与CSV文件一致。这与Python 2的行为不同,在Python 2中,行被作为普通的dict类型返回。

代码语言:javascript
复制
import csv
from pprint import pprint

with open(filename) as fd:
    for row in csv.DictReader(fd):
        pprint(row)
代码语言:javascript
复制
Date,Name,Notes
31 May 2019,Robert,
1 June 2019,Silvio,
代码语言:javascript
复制
OrderedDict([('Date', '31 May 2019'),
             ('Name', 'Robert'),
             ('Notes', '')])
OrderedDict([('Date', '1 June 2019'),
             ('Name', 'Silvio'),
             ('Notes', '')])
...
票数 2
EN

Stack Overflow用户

发布于 2012-07-19 11:04:58

我也有同样的问题,简单的方法就是子类化和调整csv函数。下面是我的工作代码:http://code.activestate.com/recipes/577996-ordered-csv-read-write-with-colum-based-lookup/?in=user-4177968

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6143128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档