如果 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 文件中。
我有一个功能可以查看玩家手中的牌,并根据他们手中的牌增加他们的分数。我将所有卡值存储在 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 文件中。