2011-10-27 115 views
0

您好,我有以下格式的文本。但我想转换成字典。我正在使用此代码转换为字典。但它不起作用。将文本转换为字典

dict((n,int(v)) for n,v in (a.split('=') for a in string.split())) 

请有人帮帮我吗?感谢

name = Kurradu 
image = 
image_size = 
producer = P. Kiran 
writer = 
starring = Varun Sandesh,Neha Sharma 
music = Achu 
cinematography = Sarvesh Murari 
editing = 
distributor = 
released = 12 November 2009 
studio = 
country = IND 
+1

你有什么错误吗?请精确'不行' – JMax

回答

2

一几个小时前你只需要一个列表,现在你需要一个字典?

text = """ name = Kurradu 
image = 
image_size = 
producer = P. Kiran 
writer = 
starring = Varun Sandesh,Neha Sharma 
music = Achu 
cinematography = Sarvesh Murari 
editing = 
distributor = 
released = 12 November 2009 
studio = 
country = IND""" 


d = dict(map(str.strip, line.split('=', 1)) for line in text.splitlines()) 


# d is now: 

{'cinematography': 'Sarvesh Murari', 
'country': 'IND', 
'distributor': '', 
'editing': '', 
'image': '', 
'image_size': '', 
'music': 'Achu', 
'name': 'Kurradu', 
'producer': 'P. Kiran', 
'released': '12 November 2009', 
'starring': 'Varun Sandesh,Neha Sharma', 
'studio': '', 
'writer': ''} 
+0

感谢您的帮助。为什么我得到这个'ValueError:字典更新序列元素#11的长度为3; 2是必需的? –

1

也许你想是这样的:

dict(a.split('=') for a in string.split('\n')) 

int(v)是行不通的,因为在=右边的值不能转换成int