热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何用Python替换StringSQLite3列的一部分

我有一个数据库,该数据库的某些列中的字符有误(由于导入不正确),我想用适

我有一个数据库,该数据库的某些列中的字符有误(由于导入不正确),我想用适当的字符替换它们。

例如,我想将"替换为",只要在表数据的列English的字符串中找到它即可。

我使用以下代码无济于事:

cOnn= sqlite3.connect('Solutions.db')
c = conn.cursor()
sql = """SELECT English,replace(English,'"','"') FROM Data"""
c.execute(sql)
records = c.fetchall()
print("Total rows are: ",len(records))
print("Printing each row")
for row in records:
print(row[0])
print("\n")
conn.commit()

我在调试器中注意到sql =行的翻译如下:

sql = SELECT English,\ `'"` \',\'"\') FROM Data

它在每个\前面放置一个',但我不知道这是否是正常行为。
无论哪种方式,我都不会替换字符,但是如果我直接在sqlite3中运行相同的命令,那么所做的更改就很好了。

我正在使用Python 3.7.5

谢谢。


CREATE TABLE test(English);
INSERT INTO test(English) VALUES
("a"b"c"),("d"e"f");
.headers on
SELECT * from test;
.print Updating
UPDATE test SET English = replace(replace(English,""",""""),"&39;","'");
SELECT * from test;

$ sqlite3 English
a"b"c&39;x&39;
d"e"f
Updating
English
a"b"c'x'
d"e"f

,

这里的问题是您正在打印第一列English,而替换实际上是在结果集的第二列中进行的。

如果更新以下行以查找索引1而不是0,则会得到正确的结果。

...
for row in records:
print(row[1]) # print the second column defined by your replace function.
print("\n")
...

但是,它仍然不会更新数据库中的实际数据,因为SELECT仅查询数据,而REPLACE对查询的数据副本执行。要更新数据库中的数据,您需要在数据库列上执行UPDATE操作。

UPDATE
Data
SET
English = REPLACE(English,'"','"');

推荐阅读
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 本文介绍如何通过创建数据库触发器来限制Oracle数据库中特定用户的登录IP地址,以增强系统的安全性。示例代码展示了如何阻止非授权IP地址的登录尝试。 ... [详细]
  • 本文探讨了Web API 2中特性的路由机制,特别是如何利用它来构建RESTful风格的URI。文章不仅介绍了基本的特性路由使用方法,还详细说明了如何通过特性路由进行API版本控制、HTTP方法的指定、路由前缀的应用以及路由约束的设置。 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • SQL 数据恢复技巧:利用快照实现高效恢复
    本文详细介绍了如何在 SQL 中通过数据库快照实现数据恢复,包括快照的创建、使用及恢复过程,旨在帮助读者深入了解这一技术并有效应用于实际场景。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有