sqlite-utils json dogs.db "select * from dogs"

This commit is contained in:
Simon Willison 2019-01-25 18:06:29 -08:00
commit 5466c9745d
4 changed files with 158 additions and 6 deletions

28
sqlite_utils/utils.py Normal file
View file

@ -0,0 +1,28 @@
def iter_pairs(iterator):
# Yields (item, next_item, is_last) pairs
# Last row is (item, None, True)
first = True
next_item = None
while True:
next_done = False
if first:
item, done = next_with_done(iterator)
if done:
break
next_item, next_done = next_with_done(iterator)
first = False
else:
item = next_item
next_item, next_done = next_with_done(iterator)
yield item, next_item, next_done
if next_done:
break
def next_with_done(iterator):
try:
return next(iterator), False
except StopIteration:
return None, True