2013-10-15 15 views
1

Я попытался найти способ разделить строку на словарь.Объект Str не является вызываемым

a=(get_profile_data()['1']) 
print(a) 
# output: CSRP:Hot12345,Pos:[id],Erp:Hot123456,Miki:[id],Citrix:Hot12345 

Я вышел с этим решением:

b= dict(e.split(':') for e in a.split(',')) 

Но я получаю ошибку Str object is not callable. Я не понимаю, почему возникла ошибка, я буду признателен за любую помощь. Спасибо, Или

редактировать: полный Trackback: Traceback: C: \ или \ MyScript \ TXT \ создатель line_reader.py. line 24
TypeError: объект 'str' не может быть вызван.

странная вещь, что код работает нормально с простоя, но покажите мне эту ошибку в PyScripter.

+0

Ваш код отлично подходит для меня на Python 2.7.5 на Mac OS. Какая у вас платформа? –

+0

Если у вас возникли проблемы, обязательно опубликуйте решение, которое действительно ломается. Потому что это не так. Кроме того, отправьте * full * traceback, а не только последнюю часть. –

+0

моя платформа Pyscripter 3.2. @Wayne Werner, что вы имеете в виду «решение, которое действительно ломается»? –

ответ

3

Вы также можете использовать Dict понимание как этот

{ k:v for k,v in (elem.split(':') for elem in a.split(','))} 

Хотя это, кажется, что вы перезапишите dict со строкой где-нибудь, так что дважды проверьте его.

+0

спасибо, PyScripter сломан. это поможет мне совершить это. –

7

Похоже, вы перезаписываете dict со шнуром где-то. Исправьте это, и это сработает.

Поскольку это, видимо, вызвано вашей сломанной среде вы можете использовать этот обходной путь, чтобы восстановить его:

dict = type({}) 
+0

Я редактирую сообщение, код работает на холостом ходу и покажу мне ошибку в PyScripter. –

+1

Затем PyScripter сломан. – ThiefMaster

+0

Догадка PyScripter достигает предела .. –

Смежные вопросы