Как вставить значения NULL в базу данных PostgreSQL с помощью Python?

Существует декоратор входного потока, java.security.DigestInputStream, так что вы можете вычислить дайджест, используя входной поток, как обычно, вместо того, чтобы делать дополнительный проход по данным.

MessageDigest md = MessageDigest.getInstance("MD5");
try (InputStream is = Files.newInputStream(Paths.get("file.txt"));
     DigestInputStream dis = new DigestInputStream(is, md)) 
{
  /* Read decorated stream (dis) to EOF as normal... */
}
byte[] digest = md.digest();
26
задан Alex Willison 1 August 2017 в 00:25
поделиться

2 ответа

В текущем psycopg вместо None используйте переменную, установленную в «NULL».

variable = 'NULL'
insert_query = """insert into my_table values(date'{}',{},{})"""
format_query = insert_query.format('9999-12-31', variable, variable)
curr.execute(format_query)
conn.commit()

>> insert into my_table values(date'9999-12-31',NULL,NULL)

Да, я назвал свою переменную «переменная». Большой вопль, хочешь сразиться об этом?

4
ответ дан 28 November 2019 в 07:08
поделиться

Более простой подход, который также практичен с высоким количеством столбцов:

Позволяют row быть списком значений, которые будут вставлены, который может содержать None. Для вставки его в PostgreSQL, мы делаем следующим образом

values = ','.join(["'" + str(i) + "'" if i else 'NULL' for i in row])
cursor.execute('insert into myTable VALUES ({});'.format(values))
conn.commit()
0
ответ дан 28 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: