2016-11-10 1 views
0

저는 Python과 Json을 처음 접했고 JSON 파일에서 값을 가져 오는 것과 관련된 질문이 있습니다.Json Feed에서 Json Object를 Python으로 어떻게 인쇄합니까?

{ 
    "Banana": { 
    Vitamin: "A", 
}, 
"Apple": { 
    Vitamin: "B", 
}, 
"Orange": { 
    Vitamin: "C", 
    }, 
} 

이의 내가 (과일이 경우) 오브젝트를 인쇄 할 가정 해 봅시다 비타민 요소 "C"

있습니다

의 난은 아래와 같은 과일을위한 JSON 피드가 있다고 가정 해 봅시다

나는 사용하여 JSON 파일을로드하고 있습니다 :

import utils 
    fruits= utils.load_json('feed.json') 

을 나는과 같이 변수에 비타민 요소를 저장하고 :

,
 for fruit in fruits: 
      list_of_vitamins= fruits[fruit]['Vitamin'] 

if 문 나는 "C"는 비타민 목록에 사용할 수 있는지 확인하기 위해 사용하고 그것입니다 : 이것은 잘 작동

 if ("C" in list_of_vitamins): 
      print "yes" 

,하지만 지금은 볼 거리 찾기 위해 노력하고있다 "C"가 있으면 "C"를 포함하는 객체를 인쇄하십시오.이 경우 "주황색"

결국 JSON 파일에서 JSON 파일을 검색하기를 원합니다. 과일 오렌지를 인쇄하십시오.

답변

0

당신은 다만 "반전"트리를 구축해야합니다 귀하의 답변에 대한

from collections import defaultdict 

fruits_by_vitamin = defaultdict(list) # if a key doesn't exist, set it to an 
             # empty list 

for fruit,data in fruits.items(): # on Python2, use iteritems() 
    fruits_by_vitamin[data['Vitamin']].append(fruit) 

print(fruits_by_vitamin['C']) 
+0

감사 @Burhan 칼리드합니다. 나는 질문이있다. defaultdict (list)의 목록은 무엇입니까? 또한 for 루프를 이해하지 못했습니다. 설명해 주시겠습니까? 고마워요 :) –

+0

'defaultdict'는 키가 존재하지 않는다면 사전의 기본값을 설정하는 방법입니다. 이 예에서는 목록에없는 키의 기본값을 설정합니다. for 루프는 키를 루핑하는 대신 키 _ 및 키의 값을 동시에 반복하는 것을 제외하고는 귀하의 루프와 같습니다. 그건'.items()'가하는 일입니다. –

0
aDict=json.loads("your json content") 
for k,v in aDict.iteritems(): 
    #print '%s:%s' % (k, v) 
    if v['Vitamin']='C': 
     print k 
1
import json 

fruits_json= json.load(open('feed.json')) 
print fruits_json 

for fruit in fruits_json: 
    if fruits_json[fruit]["Vitamin"] == "C": 
    print fruit 
+0

완벽하게 작동했습니다! 고마워요 :) –

+0

괜찮습니다! 그것을 작동 시키면 upvote 수락 할 수 있습니다!. –

+0

예! 어떻게해야합니까? 나는 여기 상대적으로 새로운 :) –

관련 문제