我想在迭代字典时在每个批处理之间插入一个暂停(约30秒)。
当我插入睡眠(秒)时,它会在每个记录之间暂停。我希望它在每个批次之间暂停(即,在处理了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)
我在这里做错了什么?还有更好的方法吗?
答案 0 :(得分:0)
正如一些用户指出的那样,尝试将render json: @questions, fields: [:title, :user], include: ['user', 'user.cities']
的缩进缩小两级,如下所示:
sleep(30)
通过这种方式,您将暂停从生成器获得的每个产生的批次,而不是暂停批次的每个元素。