python-TypeError:sql查询上需要字符串或缓冲区
我有一个sql查询返回以下值-python-TypeError:sql查询上需要字符串或缓冲区,python,python-2.7,Python,Python 2.7,我有一个sql查询返回以下值- {'jobrun_deps': 'T=1 \x01ID=56494759 \x01DID=583887 \x01O=N \x01M=N \x01J=76732 \x01R=0 \x01P=1 \x01S=101 \x01WR=N \x01T=1 \x01ID=56494760 \x01DID=418400 \x01O=N \x01M=N \x01J=48064 \x01R=14780471 \x01P=1 \x01S=101 \x01WR=N \x01T=1 \x
{'jobrun_deps': 'T=1 \x01ID=56494759 \x01DID=583887 \x01O=N \x01M=N \x01J=76732 \x01R=0 \x01P=1 \x01S=101 \x01WR=N \x01T=1 \x01ID=56494760 \x01DID=418400 \x01O=N \x01M=N \x01J=48064 \x01R=14780471 \x01P=1 \x01S=101 \x01WR=N \x01T=1 \x01ID=56494761 \x01DID=583889 \x01O=N \x01M=N \x01J=76733 \x01R=0 \x01P=1 \x01S=101 \x01WR=N \x01'}
所以当我尝试这样做的时候-
results = (re.findall(r'ID=(\d+)', my_query))
我得到这个错误-
Traceback (most recent call last):
File "D:\Scripts\OPS\TIDAL\dependency_check.py", line 25, in <module>
results = (re.findall(r'ID=(\d+)', my_query))
File "D:\Python27\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
这是因为
my_query
是一个字典,您无法将其传递给re.findall
您需要传递字典的值:
results = (re.findall(r'ID=(\d+)', my_query['jobrun_deps']))
谢谢我知道事情会很简单。
results = (re.findall(r'ID=(\d+)', my_query['jobrun_deps']))