2014-10-18 3 views
-1

에 목록 또는 문자열을 변환 할 수 없다는 : 이것은 파이썬 3.4.1는 정보가 필요 DICT

내가 텔넷 작품에서 얼마나 객체를 알아 내려고하는 데 문제입니다. 나는이 코드를 사용합니다

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 항목 정보)

답변

2

당신은 단순히 그것에 사전에 목록 개체가 있습니다. 목록에 먼저 색인을 생성 한 다음 포함 된 사전을 색인에 추가하여 사전에 액세스 할 수 있습니다.

print event.parsed[0]['msg'] 
+0

... 이것은 결코 일어나지 않았습니다! 나는 그 일찍 시도하지 않았다는 것을 믿을 수 없다. 답변 해 주셔서 감사 드리며 6 분 안에 수락하겠습니다 : P – Saelyth