0
私は、Rarityを見て、さまざまなタイプを数えてから、最小のカウントを返すPythonメソッドを書こうとしていますが、「MagicCard」オブジェクトは添え字ではありません。また、最も希少なカードに関連付けられている色をチェックしたいと思っています。任意の助けいただければ幸い:JSONはテスト用から入手することができる場所オブジェクト内の異なるカウントの最小値を探す
ここは次のとおりです。http://mtgjson.com/json/DTK.json
カードオブジェクト:
class MagicCard(object):
def __init__ (self, jsonCard):
self.name=jsonCard["name"]
if jsonCard.get("colors",""):
self.colors=jsonCard["colors"]
else:
self.colors=None
if jsonCard["rarity"]:
self.rarity=jsonCard["rarity"]
else:
self.rarity=None
def get_name(self):
"""Return the name of the card"""
return self.name
def get_colors(self):
"""Return the colors of the card"""
return self.colors
def get_rarity(self):
"""Return the rarity of the card"""
return self.rarity
カードデッキオブジェクト:
class MagicCardSet(object):
def __init__(self, DeckDict):
self.cardlist = [MagicCard(eachCard) for eachCard in DeckDict["cards"]]
def get_card_list(self):
Card_name_list=[]
for newCard in self.cardlist:
Card_name_list.append(newCard.get_name())
return(Card_name_list)
def get_card_color(self):
color_list=[]
for newCard in self.cardlist:
color_list.append(newCard.get_color())
return(color_list)
def get_card_rarity(self):
rarity_list=[]
for newCard in self.cardlist:
rarity_list.append(newCard.get_rarity())
return(rarity_list)
def get_rarest_card(self):
for eachCard in self.cardlist:
if eachCard["rarity"]=="Uncommon":
uncommon_counter = uncommon_counter + 1
elif eachCard["rarity"]=="Common":
common_counter=common_counter + 1
elif eachCard["rarity"]=="Rare":
rare_counter = rare_counter + 1
elif eachCard["rarity"]=="Mythic Rare":
mythic_rare_counter = mythic_rare_counter + 1
return(mythic_rare_counter)
、つまり、私は、「スクリプト可能ではない」エラーを取得しておりません。おそらく、トレースバック、環境情報、Pythonのバージョンなどを含めると役に立ちます。 – Martin
これらのクラスの使い方を示す[mcve]を投稿する必要があります。 'jsonCard'や' DeckDict'がどのようなものかはわかりません。そのエラーメッセージは私には意味があります。「MagicCard」インスタンスはカードのコレクションではなく、1枚のカードなので、試してインデックスを付けることは意味がありません。 OTOHの 'MagicCard'は' .rarity'属性を持っています。これは 'eachCard.rarity'を使ってアクセスできます。 –
どのようにこれらのクラスを使用していますか?なぜあなたはimgurを使っていますか?コピーして貼り付けないのはなぜですか? –