Получить значение объекта в json файле, если var равно имени объекта - python - PullRequest
0 голосов
/ 13 июля 2020

У меня есть функция, которая видит, какая карта находится в руке игрока, и добавляет к его счету в зависимости от карты в руке. У меня все значения карт хранятся в файле JSON. У меня есть код:

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

значения. json

{
    "3Hearts": 3
}

если карта 3Hearts, как я могу вернуть 3? Или есть лучший способ сохранить данные?

1 Ответ

1 голос
/ 13 июля 2020

Признаюсь, я не очень знаком с файлами 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, если вам нужно к.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...