如何检索数据库中类型错误的数据字段?

2024-10-01 02:30:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本,从现有的编码数据库中提取数据,并使数据可读

现在我想从数据库中检索数据,但数据字段的类型错误:它应该是BLOB,但实际上是文本

UPD:我知道使用ord()可以让它工作,但我想知道这是否是个好主意。我更喜欢把它们当作一团来读

import sqlite3
dbName = 'db'
def decode(data):
  key = b'111111111111'
  n = len(data)
  ret = bytearray(n)
  for i in range(0, n):
    ret[i] = data[i]^key[i%len(key)]
  return ret.decode('utf-8')

db = sqlite3.connect(dbName)
cur = db.cursor()
print(dbName + ' connected')

with open('friends', 'r') as f:
  for friend in f:
    ret = cur.execute('select frienduin from ' + friend)
    for row in ret:
      frienduin = decode(row[0])
Traceback (most recent call last):
  File "sqlsol.py", line 23, in <module>
    frienduin = decode(row[0])
  File "sqlsol.py", line 10, in decode
    ret[i] = data[i]^key[i%len(key)]
TypeError: unsupported operand type(s) for ^: 'str' and 'int'

Tags: 数据keyin数据库fordbdatalen