This commit is contained in:
simon987 2019-12-29 09:21:22 -05:00
parent 1de2bf81cd
commit 3357da764c
2 changed files with 10 additions and 10 deletions

View File

@ -44,22 +44,24 @@ class Table:
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \ sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \
(self._table, ",".join(value.keys()), key, ",".join(_sqlite_value(v) for v in value.values())) (self._table, ",".join(value.keys()), key, ",".join("?" for _ in value.values()))
try: try:
conn.execute(sql) conn.execute(sql, list(_sqlite_value(v) for v in value.values()))
except sqlite3.OperationalError: except sqlite3.OperationalError:
conn.execute( conn.execute(
"create table if not exists %s (id text primary key,%s)" % "create table if not exists %s (id text primary key,%s)" %
(self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items())) (self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
) )
conn.execute(sql) conn.execute(sql, list(_sqlite_value(v) for v in value.values()))
except sqlite3.IntegrityError: except sqlite3.IntegrityError:
sql = "UPDATE %s SET (%s) = (%s) WHERE id=?" \
% (self._table, ",".join(value.keys()), ",".join("?" for _ in value.values()))
args = [key]
args.extend(_sqlite_value(v) for v in value.values())
conn.execute( conn.execute(
"UPDATE %s SET (%s) = (%s) WHERE id=?" % sql,
(self._table, ",".join(value.keys()), ",".join(_sqlite_value(v) for v in value.values())), args
(key,)
) )
@ -74,8 +76,6 @@ def _sqlite_type(value):
def _sqlite_value(value): def _sqlite_value(value):
if isinstance(value, str):
return '"%s"' % value
if isinstance(value, bytes): if isinstance(value, bytes):
return _sqlite_value(value.decode("unicode_escape")) return _sqlite_value(value.decode("unicode_escape"))
return str(value) return str(value)

View File

@ -2,7 +2,7 @@ from setuptools import setup
setup( setup(
name="hexlib", name="hexlib",
version="1.3", version="1.4",
description="Misc utility methods", description="Misc utility methods",
author="simon987", author="simon987",
author_email="me@simon987.net", author_email="me@simon987.net",