如果 var 等于对象名称 - python,则获取 json 文件中对象的值

Get value of object in json file if var is equal to object name - python

我有一个功能可以查看玩家手中的牌,并根据他们手中的牌增加他们的分数。我将所有卡值存储在 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 文件不是很熟悉。但是,如果 json 文件不是必需的,您可以将数据存储在另一个 .py 文件中(例如 Cards.py)。

此外,因为您正在使用 python,您最好制作一个 Card class 并制作 Card 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 文件中。