我有一个将表名和列保存为字符串的变量。下面是示例:
[(u'USER_SSO_PROPERTIES', u'[\n "FULL_NAME",\n "NAME"\n]'), (u'USERS', u'[\n "EMAIL",\n "NAME"\n]'), (u'PITCH_RECIPIENTS', u'[\n "EMAIL",\n "ID"\n]'), (u'USER_CLOUD_SERVICES', u'[\n "EMAIL"\n]')]
我正在尝试在 python 中转换为字典,如下所示。
{'USER_SSO_PROPERTIES': ['FULL_NAME','NAME'],
'PITCH_RECIPIENTS':['USER_CLOUD_SERVICES','EMAIL']}
如何删除 \n 和 u 并将其转换为上述格式。我搜索了 SO,这些解决方案对我不起作用。
您可以使用ast.literal_eval
和列表理解来实现:
import ast
t = [(u'USER_SSO_PROPERTIES', u'[\n "FULL_NAME",\n "NAME"\n]'), (u'USERS', u'[\n "EMAIL",\n "NAME"\n]'),
(u'PITCH_RECIPIENTS', u'[\n "EMAIL",\n "ID"\n]'), (u'USER_CLOUD_SERVICES', u'[\n "EMAIL"\n]')]
result = {k: ast.literal_eval(v) for k, v in t}
# {'USER_SSO_PROPERTIES': ['FULL_NAME', 'NAME'], 'USERS': ['EMAIL', 'NAME'], 'PITCH_RECIPIENTS': ['EMAIL', 'ID'], 'USER_CLOUD_SERVICES': ['EMAIL']}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句