没太明白= =
如果你是有一个列表/迭代器或者其他的,打印出来这个的话,有很简单的方法是
[i[1] for i in lst]
但如果你是指:
s = """(u'one',{u'a':u"1",u'b':u'2'}),(u'two',{u'ass':u"f1",u'cb':u'2df'})"""
我能想到的方法就是 eval 了
[i[1] for i in eval("[" + s + "]", {'__builtins__':{}})]
不过,eval 绝对是 Python 里面应该避免使用的函数,看这篇文章
Eval really is dangerous
http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html直到我发现了 ast.literal_eval
ast.literal_eval = literal_eval(node_or_string)
Safely evaluate an expression node or a string containing a Python
expression. The string or node provided may only consist of the following
Python literal structures: strings, numbers, tuples, lists, dicts, booleans,
and None.
>>> [i[1] for i in ast.literal_eval("[" + s + "]")]
[{u'a': u'1', u'b': u'2'}, {u'ass': u'f1', u'cb': u'2df'}]