變化這樣的:
192.156.1.0,8181,database,admin,12345
這樣:
>>> a = "['192.156.1.0',8181,'database','admin',12345]"
>>> ast.literal_eval(a)
['192.156.1.0', 8181, 'database', 'admin', 12345]
ast.literal_eval
ast.literal_eval(node_or_string)
Safely evaluate an expression node or a Unicode or Latin-1 encoded string containing
a Python literal or container display. The string or node provided may only consist of
the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.
This can be used for safely evaluating strings containing Python values from untrusted
sources without the need to parse the values oneself. It is not capable of evaluating
任意複雜的表達式,例如涉及運營商或索引。
你可以嘗試這樣的:
>>> a='192.156.1.0,8181,database,admin,12345'
>>> a = str(map(str,a.split(',')))
>>> a
"['192.156.1.0', '8181', 'database', 'admin', '12345']"
>>> ast.literal_eval(a)
['192.156.1.0', '8181', 'database', 'admin', '12345']
你的代碼看起來就像這樣:
data=ast.literal_eval(str(map(str,datas.split(','))))
這dosent看起來像蟒蛇表達式 – Hackaholic 2014-11-21 07:05:22
@Hackaholic它是python服務的一部分,我在我提到的錯誤的一部分。 – user3664724 2014-11-21 07:07:35
'192.156.1.0,8181,database,admin,12345'不是python表達式 – Hackaholic 2014-11-21 07:08:26