2016-09-13 16 views
-1

JSONからデータを抽出したいのですが、何が起こるのか分かりません。それは "TypeError:リストインデックスは整数でなくてはならず、strでなければなりません"という応答です。ここで は感謝、私のコードです:JSON TypeError:リストインデックスはstrではなく整数でなければなりません

import urllib 
import json 
url = 'http://python-data.dr-chuck.net/comments_304658.json' 
data = urllib.urlopen(url).read() 
info = json.loads(data) 
#print json.dumps(info,indent=4) 
lst = list() 
for item in info: 
    count = item['comments']['count'] 
    count = int(count) 
    lst.append(count) 
print sum(lst) 
+0

それは' item'または '項目のいずれかのように見えます[ 'コメントを']。 – mgilson

+0

実際には '文字列インデックスは整数でなければなりません。 ' 'item'は文字列であるためです。 –

答えて

1

あなたは、返されるデータの構造によって混同しているようです。あなたのコードは構造が2レベルの辞書のリストであると仮定しています。これが事実であれば、あなたはそのような個々のcountを見つけることができる:

info[7]['comments']['count'] 

それは実際に辞書のリストとなっている辞書、一つの項目です。私たちは、リストを反復処理したい場合は

info['comments'][7]['count'] 

ので、我々はinfo['comments']を反復処理:単一のアイテムを見つけるには、表現は次のようです。

このお試しください: `` list`はなく `dict`ある

import urllib 
import json 
url = 'http://python-data.dr-chuck.net/comments_304658.json' 
data = urllib.urlopen(url).read() 
info = json.loads(data) 
#print json.dumps(info,indent=4) 
lst = list() 
for item in info['comments']: 
    count = item['count'] 
    count = int(count) 
    lst.append(count) 
print sum(lst) 
+0

ありがとうございます。あなたは私をたくさん助けます。 –

関連する問題