迭代字典时,如何在批之间暂停?

2024-04-19 09:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在遍历字典时,我想在每个批之间插入一个暂停(~30秒)。你知道吗

当我插入sleep(秒)时,它会在每个记录之间暂停。我希望它在每个批之间暂停(即,在处理了5条记录之后)

到目前为止,我开发的代码是:

def chunked (dictionary, size):
    dictionary = iter(dictionary)
    while True:
        p = tuple(itertools.islice(dictionary,size))
        if not p:
            break
        yield p


for chunk in chunked(x.items(), 5):

    #1. Return zipcode of listing
    for ID, coordinates in x.items():

        geolocator = Nominatim()

        try:
            # approx. listing address based on latitude, longitude
            location = geolocator.reverse(coordinates, timeout=None)

            print(ID)
            print(location)

            sleep(30)

我做错什么了?有更好的办法吗?你知道吗


Tags: inidforsizedictionary字典记录items
1条回答
网友
1楼 · 发布于 2024-04-19 09:13:32

正如一些用户指出的,尝试将sleep(30)的缩进减少两个级别,如下所示:

for chunk in chunked(x.items(), 5):

    #1. Return zipcode of listing
    for ID, coordinates in x.items():

        geolocator = Nominatim()

        try:
            # approx. listing address based on latitude, longitude
            location = geolocator.reverse(coordinates, timeout=None)

            print(ID)
            print(location)

    sleep(30)

这样,您将在从生成器获得的每个生成的批上暂停,而不是在批的每个元素上暂停。你知道吗

相关问题 更多 >