-1
我完全知道如何用Python正常的方式阅读csv文件。我也知道我可以解析列表(例如["a, b, 123"]
)。两者都因发电机和产量而工作。csv阅读旧的方式
我的问题是稍有不同:
- 输入是
dict
像{"line": "a, b, 123", "line_count": 555, ..}
- 输出应该是相同的
dict
有"csv"
属性延伸,就像{"line": "a, b, 123", "line_count": 555, .., "csv": ["a", "b", "c"]}
最简单的和非常传统方法将是(伪代码):
def my_csv_reader(myconfig):
my_reader = CsvReader(**myconfig)
for line in some_gen_providing_the_list_of_dicts:
line["csv"] = csv.reader(line["line"]) (1)
yield line
实际上,我能够使用通过更换线这种方法标记(1):
line["csv"] = csv.reader([line["line"]], **myconfig) (1)
但我需要解析500条MIO线,以及创建和初始化CSV对象的每一行可能会产生大量的垃圾,实际上是不必要的。我也不喜欢那个标题行,DictReader
等将不再是内置的。如果我只能够:
- 创建csv
reader
对象。 - 调用一个无聊的老式
to_csv(my_line)
函数返回该行的csv。
这是Python 3.0的某种可能吗?
不,传统方法是将CSV阅读器从行迭代中移出,如文件对象,而不是为每行创建单独的阅读器。 – TigerhawkT3