相关疑难解决方法(0)

为什么我不能在同一数据上迭代两次?

老实说,我在这里有点困惑,为什么我不能在相同的数据上迭代两次?

def _view(self,dbName):
    db = self.dictDatabases[dbName]
    data = db[3]

    for row in data:
        print("doing this one time")

    for row in data:
        print("doing this two times")
Run Code Online (Sandbox Code Playgroud)

这将打印出"一次这样做"几次(因为数据有几行),但它根本不会打印出"这样做两次"......

我第一次迭代数据工作正常,但第二次当我运行最后一个列表"for data in data"时,这没有返回...所以执行它一次工作但不是两次......?

仅供参考 - 数据是一个csv.reader对象(如果是这样的原因)......

python

34
推荐指数
4
解决办法
2万
查看次数

正确的方法来重置csv.reader多次迭代?

有一个自定义迭代器的问题,它只会迭代文件一次.我seek(0)在迭代之间调用相关的文件对象,但是在第二次运行StopIteration的第一次调用时抛出next().我觉得我忽略了一些显而易见的事情,但我会对此有一些新的看法:

class MappedIterator(object):
    """
    Given an iterator of dicts or objects and a attribute mapping dict, 
    will make the objects accessible via the desired interface.

    Currently it will only produce dictionaries with string values. Can be 
    made to support actual objects later on. Somehow... :D
    """

    def __init__(self, obj=None, mapping={}, *args, **kwargs):

        self._obj = obj
        self._mapping = mapping
        self.cnt = 0

    def __iter__(self):

        return self

    def reset(self):

        self.cnt = 0

    def next(self):

        try:

            try: …
Run Code Online (Sandbox Code Playgroud)

python csv iterator

10
推荐指数
1
解决办法
1万
查看次数

Python CSV阅读器没有按照我期望的方式读取CSV数据

我正在尝试将一些CSV数据读入数组.我可以解释一下我在Python中要做的比用英语做得更好:

>>> line = ImportFile.objects.all().reverse()[0].file.split("\n")[0]
>>> line
'"007147","John Smith","100 Farley Ln","","Berlin NH 03570","Berlin","NH",2450000,"John",24643203,3454,"E","",2345071,1201,"N",15465,"I",.00,20102456,945610,20247320,1245712,"0T",.00100000,"",.00,.00,780,"D","000",.00,0\r'
>>> s = cStringIO.StringIO()
>>> s
<cStringIO.StringO object at 0x9ab1960>
>>> s.write(line)
>>> r = csv.reader(s)
>>> r
<_csv.reader object at 0x9aa217c>
>>> [line for line in r]
[]
Run Code Online (Sandbox Code Playgroud)

如您所见,CSV数据从内存开始,而不是在文件中.我希望我的读者可以获得一些数据,但事实并非如此.我究竟做错了什么?

python csv django

3
推荐指数
1
解决办法
1607
查看次数

标签 统计

python ×3

csv ×2

django ×1

iterator ×1