python之正则表达式从列表中取值报类型错误(Python’s regular expression takes value from the list and reports the wrong type)

“TypeError: a bytes-like object is required, not 'str'”错误

  解决:使用.join函数

print("type(response_sum)====",type(response_sum))
ymd = re.findall("ymd:'(.*?)',", "".join(response_sum))  # 正则表达式获取日期数据,正则表达式从列表中获取对应的数据
print('type("".join(response_sum)',type("".join(response_sum)))

#type(response_sum)==== <class 'list'>
#type("".join(response_sum) <class 'str'>

  一、介绍.join函数的使用

python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法

join()方法语法: str . join ( sequence )

参数1)用str替换sequence 中逗号分隔符
2)sequence -- 要连接的元素序列。 返回值 返回通过指定字符连接序列中元素后生成的新字符串。

  实例

以下实例展示了join()的使用方法:

1、以某规则连接元组: >>> str="-"

>>> seq=('a','b','c')

>>> print str.join(seq)

a-b-c #输出

2、以某规则连接列表: >>> list=['1','2','3','4','5']

>>> print(''.join(list))

12345 #输出

3、以某规则连接字典(字典只对键进行连接) >>> seq = {'hello':'nihao','good':2,'boy':3,'doiido':4}

>>> print('-'.join(seq)) #字典只对键进行连接

hello-good-boy-doiido  #输出
————————
“TypeError: a bytes-like object is required, not 'str'”错误

Solution: use Join function

print("type(response_sum)====",type(response_sum))
ymd = re.findall("ymd:'(.*?)',", "".join(response_sum))  # 正则表达式获取日期数据,正则表达式从列表中获取对应的数据
print('type("".join(response_sum)',type("".join(response_sum)))

#type(response_sum)==== <class 'list'>
#type("".join(response_sum) <class 'str'>

I. Introduction Use of join function

The python join () method is used to connect the elements in the sequence with the specified characters to generate a new string.

语法

join()方法语法: str . join ( sequence )

参数1)用str替换sequence 中逗号分隔符
2)sequence -- 要连接的元素序列。 返回值 返回通过指定字符连接序列中元素后生成的新字符串。

Instance

以下实例展示了join()的使用方法:

1、以某规则连接元组: >>> str="-"

>>> seq=('a','b','c')

>>> print str.join(seq)

a-b-c #输出

2、以某规则连接列表: >>> list=['1','2','3','4','5']

>>> print(''.join(list))

12345 #输出

3、以某规则连接字典(字典只对键进行连接) >>> seq = {'hello':'nihao','good':2,'boy':3,'doiido':4}

>>> print('-'.join(seq)) #字典只对键进行连接

hello-good-boy-doiido  #输出