我有一个SQLite数据库,其列的条目是以下形式的字符串“A-B-C”,其中A,B,C具有可变长度并由“ - ”字符分隔。
特别是,A应为1或2个字符,B 1-4个字符和C 1-5个字符,但由于某些未知原因,它们可能更长。
我尝试按以下方式拆分这些字符:
然而,由于SQLite不支持字符串拆分,而且我使用substr()
进行黑客攻击并且不同的定位导致了很多混乱。
我正在尝试在python中执行此操作。但是我对此很新,虽然我能够以这种方式连接到数据库并提交语句,但我不太确定如何去做我想要的事情。我看到了str.rsplit()
函数,但我不确定如何在两种语言之间进行混合。
例如,我应该写
c = conn.execute(
UPDATE database SET Column_1 =
def First(
str.rsplit(Column), 1)
SELECT Column FROM database )
First
函数返回Column
分割字符串的第一个值,依此类推Column_2
和Column_3
。
一旦我有了这个,我需要格式化column_1,column_2和column_3中的每一个,以便它们每个都至少有2个,4个和5个字符,每个字符在列的字符左边相邻的零点,具体取决于长度结果字符串。
编辑:
我在更新数据库方面遇到了一些问题:
以下产生第一个值:
with con: cur = con.cursor() cur.execute('SELECT Column1 FROM MainTable') row = cur.fetchone() for line in row: a, b, c= line.split('-') print (b);
使用以下方式稍作修改:
while True:
cur.fetchone()== None then Break
产生所有值。 但是,我可以让它更新给定列Col2的数据库,因为它有很多与混合python和SQL相关的语法错误。
答案 0 :(得分:1)
您可以使用split()
方法拆分字符串:
data = [
'ab-de-ghijk',
'a-bcde-fghi',
]
for string in data:
a, b, c = string.split('-')
print(a, b, c)