2017-10-30 10 views
0

インデックスの値を変更しようとしていますが、同じエラーが発生しており、解決方法がありません。学校のプロジェクトのために誰もが私を助けることができれば、それは非常に高く評価されるだろう。事前にインデックス値を変更できないのはなぜですか?

Traceback (most recent call last): list/scorebord/writing.py", line 18, in if naam == spelerlijst["spelers"]: TypeError: list indices must be integers or slices, not str

import json 
spelerlijst = [] 
with open("test1.json") as spelerlijst: 
    spelerlijst = json.load(spelerlijst) 

speler = input("geef een naam") 
spelers = {"speler": speler, "score": 0} 
spelerlijst.append(spelers) 
print (spelerlijst) 
with open ("test1.json", "w") as data: 
    json.dump (spelerlijst, data) 
print ("Speler {} is aangemaakt.".format(speler)) 

for spelers in spelerlijst: 
    naam = input("welke speler krijgt een punt") 
    if naam == spelerlijst["spelers"]: 
     spelers["score"] += int(score) 

感謝。

+0

文字列でリストのインデックスを作成することはできません。もしあなたがそれをしたいのであれば、あなたは次のようにしなければなりません: 'val = spelerlijst [spelerlijst.index(" spelers ")]' – pstatix

+0

このエラーは問題についてはっきりしていますね。 –

答えて

0

問題は、インデックスを作成しようとしているものがリストであり、辞書ではないということです。インデックスを文字列として使用する場合はdictを使用するか、上記のようにリストタイプのindexメソッド(findの文字列メソッドと同様)を使用して抽出しますリストからのインデックス

関連する問題