Python 2.7 在python中将集合转换为Dict

Python 2.7 在python中将集合转换为Dict,python-2.7,dictionary,Python 2.7,Dictionary,我有一套像这样的 x = set([u'[{"Mychannel":"sample text"},"p"]']) 我需要把它转换成Dict 我需要得到输出作为 x = {'mychannel':'sampletext'} 如何做到这一点。看起来你可以像这样打开那个疯狂的东西: >>> x = set([u'[{"Mychannel":"sample text"}, "p"]']) >>> lst = list(x) >>> lst [u'

我有一套像这样的

x = set([u'[{"Mychannel":"sample text"},"p"]'])
我需要把它转换成Dict

我需要得到输出作为

x = {'mychannel':'sampletext'}

如何做到这一点。

看起来你可以像这样打开那个疯狂的东西:

>>> x = set([u'[{"Mychannel":"sample text"}, "p"]'])
>>> lst = list(x)
>>> lst
[u'[{"Mychannel":"sample text"}, "p"]']
>>> lst[0]
u'[{"Mychannel":"sample text"}, "p"]'
>>> inner_lst = eval(lst[0])
>>> inner_lst
[{'Mychannel': 'sample text'}, 'p']
>>> d = inner_lst[0]
>>> d
{'Mychannel': 'sample text'}

然而,正如@MattDMo在评论中所建议的那样,我郑重建议您重新评估此数据结构,如果不是至少要考虑出您需要
eval
使用它的步骤

你能给出一些你的数据和预期输出的替代例子吗?这不是一个直接的set-to-dict转换,如果有的话。你到底是怎么得到这样的数据结构的?它是
列表
字符串
列表
集合
内的
命令。我认为…您可以用
ast.literal\u eval
替换
eval
,但正如您所说,简化产生这种情况的任何东西可能是更好的主意。我怀疑OP有足够的控制权在其他地方使用更好的数据结构,由于解包的第一步似乎是在显示的代码中反向调用set。这使它变得更复杂而不是更少(这一操作在这里似乎已经发生过多次)。