Ability to insert base64 binary data as JSON, closes #126

This commit is contained in:
Simon Willison 2020-07-26 20:59:15 -07:00
commit 1a61a6d3d6
5 changed files with 67 additions and 3 deletions

View file

@ -8,7 +8,7 @@ import json
import sys
import csv as csv_std
import tabulate
from .utils import sqlite3
from .utils import sqlite3, decode_base64_values
VALID_COLUMN_TYPES = ("INTEGER", "TEXT", "FLOAT", "BLOB")
@ -451,6 +451,8 @@ def insert_upsert_implementation(
extra_kwargs["defaults"] = dict(default)
if upsert:
extra_kwargs["upsert"] = upsert
# Apply {"$base64": true, ...} decoding, if needed
docs = (decode_base64_values(doc) for doc in docs)
db[table].insert_all(
docs, pk=pk, batch_size=batch_size, alter=alter, **extra_kwargs
)