我正在查询数据库并获取此文本:
"('username', '192.168.1.1', datetime.datetime(2013, 1, 3, 7, 18))"
我想像这样拆分成列表:
['username', '192.168.1.1', datatime.datetime(2013, 1, 3, 7, 18)]
那么,哪种方式最好呢?我正在使用 Python 2.4。
请您参考如下方法:
>>> 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)]
eval 将字符串作为 Python 表达式求值,此处生成一个包含两个字符串的元组和一个 datetime 实例。 list 将此元组转换为列表。
警告:eval 可能会执行任何有效的 Python 代码,甚至是恶意代码。有更安全的选择,例如 ast.literal_eval如果您不确定是否信任数据库中的内容,可以使用它。
