Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将字符串转换为字节_Python_Python 2.7 - Fatal编程技术网

Python 如何将字符串转换为字节

Python 如何将字符串转换为字节,python,python-2.7,Python,Python 2.7,我使用的是PythonV2.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数据库,然后将其从数据库中拉出来,

我使用的是PythonV2.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]) 
...
它们都产生相同的结果

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

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

任何帮助,我都将永远感激

提前感谢,


Ed

问题在于您没有在数据库中正确存储值。您希望存储一个字节序列,但您存储的是这些字节的转义版本

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

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\u eval()
将其作为字符串文本进行计算。

您说您使用的是3.x,但您使用的是2.x打印语法。您确定知道您使用的是哪个版本吗?此代码的可能副本不会产生您所说的Python 3上的输出。它会产生一个语法错误。嗨,我检查过了,你是对的。我正在运行版本2.7.3。对于造成的混乱,我深表歉意。请打印出要转换的字符串的
repr()
值。