无法将列表或字符串转换为字典
问题描述:
需要的信息:这是Python 3.4.1无法将列表或字符串转换为字典
我遇到问题,试图弄清楚我从telnet获得的对象是如何工作的。我用这个代码:
def EventHandler(sender, event):
print("Printing server response: " + str(event.parsed)) #This is the server text
print(type(event.parsed)) #I try to check what it's, seems a list
TryingToFix = str(event.parsed)[1:-1] #I try to make it a string...
dict(TryingToFix) #...just to later try to make it a dict
print(TryingToFix) #this never works
,其结果是:
Printing server response: [{'targetmode': '2', 'invokername': 'Saelyth', 'invokerid': '18472', 'msg': 'test message', 'invokeruid': 'myuniqueid'}]
<class 'list'>
ValueError: dictionary update sequence element #0 has length 1; 2 is required
问题是什么?
我希望能够单独使用响应中的项目。例如,我只想打印invokername或只打印msg。我相信所需的代码将是event.parsed['msg']
,但它给我带来麻烦,因为它看起来不是字典。
如何以所需的方式使用列表中的项目?
预期的答案:打印(只有1项信息)
答
您只需在它一个词典列表对象。您可以通过首先对列表进行索引来访问词典,然后查找所包含的词典:
print event.parsed[0]['msg']
......这从未发生过!我不敢相信我以前没有尝试过。谢谢你的回答,6分钟后会接受:P – Saelyth 2014-10-18 17:22:38