iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用python怎么往Postgresql数据库中插入一个Null值
  • 164
分享到

使用python怎么往Postgresql数据库中插入一个Null值

2023-06-07 18:06:33 164人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

使用python怎么往postgresql数据库中插入一个Null值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python是什么意思Python是一种跨平台

使用python怎么往postgresql数据库中插入一个Null值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

使用轮子的方法

def insert_sample_data(self, values): # added self since you are referencing it below with self.con.cursor() as cur:  sql = "insert into sampletable values (%s, %s, %s)" # Use %s for parameters  cur.executemany(sql, values) # Pass the list of tuples directly  self.con.commit() list1 = [(1100, 'abc', '{"1209": "Y", "1210": "Y"}'), (1100, 'abc', None)]self.insert_sample_data(list1) # pass the list directly

补充:python连接数据库插入数据库数据所碰到的坑

Python中插入数据时执行后,没有报任何错误,但数据库中并没有出现新添加的数据

原因:

缺少提交操作。

解决方案:

Python操作数据库时,如果对数据表进行修改/删除/添加等控制操作,系统会将操作保存在内存,只有执行commit(),才会将操作提交到数据库。

但是总有你想不到的坑代码如下:

import pymysql class Connection:  def __init__(self):  self.host = 'localhost'  self.user = 'nameit'  self.passWord = 'YES'  self.port = 3306  self.db = 'Xomai'   def connection(self):   db = pyMysql.connect(host=self.host, user=self.user, password=self.password, port=self.port, db=self.db)  cur = db.cursor()  return db, cur  def create_table(self, cur):   sql = """CREATE TABLE `activity_feedback` (     `id` bigint(20) NOT NULL AUTO_INCREMENT,     `inst_id` bigint(20) DEFAULT NULL COMMENT 'ID',     `broadcast_id` bigint(20) DEFAULT NULL COMMENT '你好',     `student_id` bigint(20) DEFAULT NULL COMMENT '学生ID',     `content` varchar(1024) DEFAULT NULL COMMENT '学员内容',     `comment` varchar(255) DEFAULT NULL COMMENT '注释',     `gmt_create` datetime DEFAULT NULL,     `gmt_modify` datetime DEFAULT NULL,     PRIMARY KEY (`id`),     KEY `activity_feedback_student_id_index` (`student_id`)    ) ENGINE = InnoDB AUTO_INCREMENT = 1050 DEFAULT CHARSET = utf8mb4 COMMENT = '学员表'"""  cur.execute(sql) def insert(self, id, inst_id, broadcast_id, student_id, content, comment, gmt_create, gmt_modify):  sql = """INSERT INTO `activity_feedback` (     `id`, `inst_id`, `broadcast_id`, `student_id`, `content`, `comment`, `gmt_create`, `gmt_modify`)     VALUES ('{}','{}','{}','{}','{}','{}','{}','{}')""".fORMat(id, inst_id, broadcast_id, student_id, content, comment, gmt_create, gmt_modify)  try:   self.connection()[1].execute(sql)   self.connection()[0].commit()  except:   self.connection()[0].rollback()if __name__ == '__main__': conn = Connection() conn.insert(123, 123, 324, 3451, 'ajdf', 'sdfs', '2013-2-5', '2014-3-4')

咋一看好像也有commit呀,怎么一直在数据库没有,再仔细看看

  try:   self.connection()[1].execute(sql)   self.connection()[0].commit()  except:   self.connection()[0].rollback()

connection()调用方法方法返回的对象是同一个吗?

并不是,心累,搞了半天,只怪自己还太嫩。

正确写法:

  try:   cons = self.connection()   cons[1].execute(sql)   cons[0].commit()   cons[0].close()  except:   cons[0].rollback()

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网Python频道,感谢您对编程网的支持。

--结束END--

本文标题: 使用python怎么往Postgresql数据库中插入一个Null值

本文链接: https://www.lsjlt.com/news/249912.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作