중첩 된 사전을 평평 - 문자열로 변환 목록 요소를

marcellobello :

나는 가장 낮은 수준이 하나 개의 요소 각각 목록으로 구성 중첩 된 사전을 가지고있다. 나는 목록에서 문자열이 레벨을 변경하고 싶습니다. 나는 이와 같은 사전을 가지고 가정 :

dict = {id1:{'key11':['value11'],'key12':['value12']}, id2:{'key21':['value21'],'key22':['value22']}}

어떻게 얻을 수 있습니다 :

dict = {id1:{'key11': 'value11','key12':'value12'}, id2:{'key21':'value21','key22':'value22'}}

추가 질문 : 키와 값이 특정 논리를 따르지 않는 경우 솔루션의 변화를 수행하지만 각 요소는 고유하며 당신이 그들 중 많은 사람들이 어떻게; 예컨대 아래 예와 같이 :

dictionary = {'ida':{'abc':['def'],'fgh':['ijk'] (...)}, 'idb':{'lmn':['opq'],'rst':['uvw']} (...)}

감사합니다!!

참고 : 나는 목록 값을 산출 XML 파일에서 추출 텍스트로 이전 코드의 목록 / 맵 구조를 사용하고 있기 때문에이 구조를 얻는다.

get_text = lambda x: x.text
content = [list(map(get_text, i)) for i in content]
카슨 :

이 작품 :

dictionary = {'id1':{'key11':['value11'],'key12':['value12']}, 'id2':{'key21':['value21'],'key22':['value22']}}

new_dict = {key: {key1:value1[0] for key1, value1 in value.items()} for key, value in dictionary.items()}
new_dict
#{'id1': {'key11': 'value11', 'key12': 'value12'},
# 'id2': {'key21': 'value21', 'key22': 'value22'}}

또한, 나는 같은 미리 정의 된 용어를 사용하지 않을 dict

추천

출처http://10.200.1.11:23101/article/api/json?id=402900&siteId=1