在python中将bytearray转换为字符串

时间:2018-10-15 13:41:03

标签: python sql

背景信息:我想在SQL查询中将字符串作为参数传递:

sqlq="""select reaction_time from table5 where sessionID=%s"""

我的数据采用字节数组的形式,例如(此sessionID也是从数据库中检索的)

{u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')} 

问题:如何将其转换为字符串,使其看起来像以下内容? '001f6340f7651db3e289d348de75f9bb'

1 个答案:

答案 0 :(得分:0)

在3.X版本中:

>>> d = {u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')}
>>> my_string = d[u"sessionID"].decode()
>>> my_string
'001f6340f7651db3e289d348de75f9bb'

可能您现在正在考虑“我尝试过此操作,但是因为我使用的是Python 2.7,所以输出为u'001f6340f7651db3e289d348de75f9bb'。我不希望在前面使用'u'。我如何将其设置为8位字符串,而不是Unicode字符串?”。 2.7字节数组和2.7字符串之间的转换非常简单-两种类型均为8位,因此无需解码。一个简单的str()调用就足够了:

C:\Users\Kevin\Desktop>py -2
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> d = {u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')}
>>> my_string = str(d[u"sessionID"])
>>> my_string
'001f6340f7651db3e289d348de75f9bb'