2016-08-22 2 views
0

json 파일에서 여러 주소의 균형을 취하여 최종 균형을 이루도록 스크립트를 추가하려고합니다.Python2 - "for"루프 출력 합계

이 지금까지 코드 -

import json 
from pprint import pprint 

with open('hd-wallet-addrs/addresses.json') as data_file:  
    data = json.load(data_file) 

for balance in data: 
    print balance['balance'] 


이 JSON 파일에 무엇이다는 :

[ 
    { 
     "addr": "1ERDMDducUsmrajDpQjoKxAHCqbTMEU9R6", 
     "balance": "21.00000000" 
    }, 
    { 
     "addr": "1DvmasdbaFD7Tj6diu6D8WVc1Bkbj7jYRM", 
     "balance": "0.30000000" 
    }, 
    { 
     "addr": "18xkkUi7qagUuBAg572UsmDKcZTP5zxaDB", 
     "balance": "0.80000000" 
    }, 
    { 
     "addr": "1MmTDCsySdsWRVbNFwXBy2APW5kGsynkaA3", 
     "balance": "0.005" 
    }, 

] 

결과는 다음과 같다 :

21 
0.3 
0.8 
0.005 

숫자를 함께 추가하려면 코드를 어떻게 편집해야합니까?

당신은 sum 기능과 목록 이해 사용할 수 있습니다
+0

나는 그렇지 않았다. 나는 DeepSpace를 사용했다. –

+1

나는 시간이 지나면 흔들리지 않는 경향이있다. 나는 코드 가독성을 선호한다. –

답변

2

실제로 함께 추가 ...

total = 0 
for balance in data: 
    total += float(balance['balance']) 
print total 

또는 sum 사용 :

print sum(float(temp_balance['balance']) for temp_balance in data) 
+0

두 번째 작품! 도와 주셔서 감사합니다. 첫 번째 사람이 나에게 "TypeError : + = : 'int'및 'unicode'에 대해 지원되지 않는 피연산자 유형을 사용했습니다." –

+0

@WhytetheWeeabear Fixed, 두 가지 접근 방식이 모두 작동합니다. – DeepSpace

+0

네, 고마워요. 5 분을 기다리는 시간! :) –

0

:

final_balance = sum(map(float, [balance['balance'] for balance in data])) 

map()float 번호 str 번호 목록을 변환되며, sum()이를 달성하기 위해

sum([float(b['balance']) for b in balance]) 
1

대부분의 파이썬 방법이 될 것입니다 함께 추가 할 것입니다.

0
balance_prev = 0 
balance_sum = 0 
for balance in data: 
    balance_sum = float(balance_prev) + float(balance['balance']) 
    balance_prev = balance_sum 
print balance['balance'] 

희망이 도움이!