2016-05-11 9 views
0

私は一般的にPythonとコーディングを始めています。私の質問は、この文字列内の辞書の数を見つける方法です。 これは私が取得したい結果がdataHistory.jsonがより辞書に追加されますリマインダとしても9文字列中の辞書の数を数えるPython

を印刷するための番号である

{ 
"lists": [ 
     { 
      "number": 1, 
      "name": "A" 
     }, 
     { 
      "number": 2, 
      "name": "B" 
     }, 
     { 
      "number": 3, 
      "name": "C" 
     }, 
     { 
      "number": 4, 
      "name": "D" 
     }, 
     { 
      "number": 5, 
      "name": "E" 
     }, 
     { 
      "number": 6, 
      "name": "F" 
     }, 
     { 
      "number": 7, 
      "name": "G" 
     }, 
     { 
      "number": 8, 
      "name": "H" 
     }, 
     { 
      "number": 9, 
      "name": "I" 
     }, 

    ] 
} 

dataHistory.json

と呼ばれるファイルです。

私のコード私は始めました。

def _get_data_history(self): 
     theHistory = open(self.history_path) 
     holdHistory = json.load(theHistory) 
     theHistory.close() 
     return holdHistory 

theDataHistory = obj._get_data_history() 
print theDataHistory['RestaurantsHistory'] # stuck here 

おかげたぶん

+0

?これはJSONファイルにはありません。 –

+0

辞書は 'lists'にありますので、' print len(theDataHistory ['lists']) 'はそれを行うべきです。 – tdelaney

+0

私は答えを追加しましたが、私はあなたの質問を誤解し、 'dict'の数について質問しました。だから私は答えを削除しました。 – quapka

答えて

2

これが、 'RestaurantsHistoryは' から来ていないアイデア:そう

print len(theDataHistory['RestaurantsHistory']['lists']) 

この:

print len(theDataHistory['lists']) 
+1

実際に彼の例では、彼は 'list'の代わりに' lists'を使います。このタイプミスに加えて、あなたのソリューションは機能します。 – LAL

+1

私も 'lists'を使って、もう一度私の答えを見てください;-) –

1

あなたはリスト(またはタプルを持っている場合、セット、辞書、文字列、または他の多くの可能性)、len(the_list)要素の数を返します。 lenは長さが短いです。

サンプルJSONは、キーが1つの辞書"lists"になります。 json_data["lists"]で値を取得することができ、要素数はlen(json_data["lists"])になります。 json_datatheDataHistoryまたはtheDataHistory['RestaurantsHistory']のいずれかであるため、サンプルにRestaurantsHistoryが存在しないため、コードの最後に何が起こったかはわかりません。

+0

これは有益です。 – Rusher

0

LEN(S)オブジェクトの

戻り長(項目数)。引数は のシーケンス(文字列、バイト、タプル、リスト、範囲など)または コレクション(辞書、セット、またはフリーズセットなど)にすることができます。この文字列は `から来RestaurantsHistory`ん

ref doc.

dict = {'lists':[{'number':1,'name':'A'}, 
       {'number':2,'name':'B'}, 
       {'number':3,'name':'C'}] 
     } 
print len(dict) # outputs 1 
print len(dict['lists']) # outputs 3 
print len(dict['lists'][0]) # output 2 
+0

ありがとう!それに近づくさまざまな方法のために。 – Rusher

関連する問題