python中的数据库连接字符串解析

man*_*ele 4 python database parsing uri

给定一个数据库连接字符串结构(比如你可以在这里找到的那个),解析真正的URI字符串并获取用户,密码,数据库名称和主机等组件的最佳方法是什么?

非常感谢你

emK*_*oly 11

有一个Python库:


Rob*_*och 6

一个正则表达式(取决于具体的语法)!?

例如:

m = re.match('mysql://(.*?):(.*?)@(.*?)/(.*)', url)
Run Code Online (Sandbox Code Playgroud)

应该在组 1 到 4 中为您提供用户、密码、主机和数据库:

print(m.groups())
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

user, password, host, database = re.match('mysql://(.*?):(.*?)@(.*?)/(.*)', url).groups()
Run Code Online (Sandbox Code Playgroud)

  • 在那种情况下,当接受的答案不是最好的答案时;) (2认同)

Ken*_*nly 5

对于python 2,您可以使用urlparse

from urlparse import urlparse

r = urlparse('mysql://alex:pwd@localhost/test')
print(r.username)
# 'alex'
print(r.password)
# 'pwd'
Run Code Online (Sandbox Code Playgroud)