gpt4 book ai didi

python - 将 CSV 的前 n 行读入字典

转载 作者:太空狗 更新时间:2023-10-30 02:03:39 24 4
gpt4 key购买 nike

我有一个 CSV 文件,我想将其读入字典,以便随后插入到名为项目的 MongoDB 集合中。

我通过以下方式实现了这一点:

with open('opendata_projects.csv') as f:
records = csv.DictReader(f)
projects.insert(records)

但是,我发现我可怜的沙盒帐户无法保存所有数据。反过来,我想阅读前 n 行,这样我就可以处理数据并习惯使用 MongoDB。

首先,我检查了 csv.DictReader 函数的文档:

class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)

但该函数似乎不允许输入我想要的行数作为参数。

所以我尝试通过编写以下代码来做到这一点:

with open('opendata_projects.csv') as f:
records = csv.DictReader(f)
for i in records:
if i <= 100:
projects.insert(i)

紧随其后的是错误:

TypeError: unorderable types: dict() <= int()

这促使我进一步研究字典,发现它们是无序的。尽管如此,它似乎是来自 Python csv docs 的一个例子。建议我可以使用 csv.DictReader 进行迭代:

with open('names.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['first_name'], row['last_name'])

有没有办法通过使用这些函数来完成我想做的事情?

最佳答案

您可以使用 itertools.islice , 像这样

import csv, itertools

with open('names.csv') as csvfile:
for row in itertools.islice(csv.DictReader(csvfile), 100):
print(row['first_name'], row['last_name'])

islice 将从您传递的可迭代对象创建一个迭代器,它将允许您迭代到限制,您作为第二个参数传递。


除此之外,如果你想自己算,可以用enumerate函数,像这样

for index, row in enumerate(csv.DictReader(csvfile)):
if index >= 100:
break
print(row['first_name'], row['last_name'])

关于python - 将 CSV 的前 n 行读入字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com