【问题标题】:Get value of object in json file if var is equal to object name - python如果var等于对象名称,则获取json文件中对象的值-python
【发布时间】:2020-11-03 01:25:03
【问题描述】:

我有一个功能,可以查看玩家手中的牌,并根据他们手中的牌增加他们的分数。我将所有卡值存储在 JSON 文件中。到目前为止,我已经编写了代码:

with open("values.json") as values:
    value = json.load(values)
    for i in range(0, len(hand)):
        card = hand[i]

values.json

{
    "3Hearts": 3
}

如果卡是3Hearts,我怎样才能退回 3? 或者有没有更好的方法来存储数据?

【问题讨论】:

    标签: json python-3.x card


    【解决方案1】:

    我承认我对 json 文件不是很熟悉。但是,如果不需要 json 文件,您可以将数据存储在另一个 .py 文件中(例如 Cards.py)。

    另外,因为您使用的是 python,所以最好创建 Card classCard objects。 这就是它的样子:

        # Make Card Class
        class Card:
            def __init__(self, name, number):
                self.name = name
                self.number = number
    
    
        # Make Card Objects
        threehearts = Card("3Hearts", "3")
    

    这里我使用threehearts 而不是3Hearts,因为以数字开头的对象名称不是一个好习惯。作为补偿,我创建了一个属性 Card.name,您可以在其中“命名”卡片 "3Hearts",就像您在问题中所做的那样。

    因此,假设您要使用该 .py 文件来存储您的数据,这就是我的建议:

        # Import data here
        from Cards import*
    
        # Make the player's hand
        hand = [threehearts]
    
        # Display the number corresponding to the player's hand
        for i in range(0, len(hand)):
            card = hand[i]
            print(card.number)
    

    这段代码的输出将是:

        3
    

    如果需要,您也可以将hand = [threehearts] 存储在 Cards.py 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 2016-12-23
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      相关资源
      最近更新 更多