如何将带分隔符的字符串转换为Python中的字符串列表?

Sou*_*ent 1 python string datetime list python-2.4

我正在查询数据库并获取此文本:

"('username', '192.168.1.1', datetime.datetime(2013, 1, 3, 7, 18))"
Run Code Online (Sandbox Code Playgroud)

我想分成这样的列表:

['username', '192.168.1.1', datatime.datetime(2013, 1, 3, 7, 18)]
Run Code Online (Sandbox Code Playgroud)

那么,哪种方式最好的方式呢?我正在使用Python 2.4.

Ale*_*ley 7

一种方法是使用evallist:

>>> import datetime
>>> string = "('username', '192.168.1.1', datetime.datetime(2013, 1, 3, 7, 18))"
>>> list(eval(string))
['username', '192.168.1.1', datetime.datetime(2013, 1, 3, 7, 18)]
Run Code Online (Sandbox Code Playgroud)

eval将字符串计算为Python表达式,此处生成包含两个字符串和datetime实例的元组.list将此元组转换为列表.


警告:eval可能会执行任何有效的Python代码,甚至是恶意代码.ast.literal_eval如果您不确定自己是否信任数据库中的内容,可以使用更安全的替代方案.

  • 与`eval`一样,除非输入是可信的,否则不安全. (2认同)