gpt4 book ai didi

python - 如何将字符串转换为字节

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:42 24 4
gpt4 key购买 nike

我正在使用 python v2.7.3,并试图进行转换,但遇到了一些问题。

这是按照我希望的方式工作的代码:

testString = "\x00\x13\xA2\x00\x40\xAA\x15\x47"
print 'Test String:',testString

这会产生以下结果

TestString: ¢@ªG

现在我加载与上面相同的字符串以及一些其他数据:

\x00\x13\xA2\x00\x40\xAA\x15\x47123456

进入 SQLite3 数据库,然后从数据库中提取它,如下所示:

cur.execute('select datafield from databasetable')
rows = cur.fetchall()
if len(rows) == 0:
print 'Sorry Found Nothing!'
else:
print row[0][:32]

但这会产生以下结果:

\x00\x13\xA2\x00\x40\xAA\x15\x47

我不知道如何将数据库存储的字符串转换为字节字符串(如果是这样的话),就像第一个代码片段那样。我实际上需要它以该格式加载到变量中,以便我可以将其传递给函数以进行进一步处理。

我尝试过以下方法:

print "My Addy:",bytes(row[0][:32])
print '{0}'.format(row[0][:32])
...

它们都产生相同的结果......

首先,谁能告诉我第一个结果是什么格式?我认为它是字节格式,但不确定。

二、如何将数据库存储的文本转换为

任何帮助,我将永远感激不已。

提前致谢,

编辑

最佳答案

问题是您没有正确地将值存储在数据库中。您想要存储字节序列,但您存储的是这些字节的转义版本。

在编程语言中输入字符串文字时,您可以在源代码中使用转义码来访问非打印字符。这就是您在第一个示例中所做的事情:

testString = "\x00\x13\xA2\x00\x40\xAA\x15\x47"
print 'Test String:',testString

但是这是由 Python 解释器完成的处理,因为它正在读取您的程序并执行它。

将数据库列更改为二进制 blob 而不是字符串,然后返回到 SQLite3 中用于存储字节的代码,并让它存储实际字节 ('ABC',3 个字节)而不是转义字符串('\x41\x42\x43',12 个字符)。

如果您确实需要将转义字符串存储在 SQLite3 中并在运行时对其进行转换,则可以使用 ast.literal_eval() 将其计算为字符串文字。

关于python - 如何将字符串转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com