Python 错误:从json文件读取字典:值太多,无法解压缩
请参阅下面的错误消息和字典:Python 错误:从json文件读取字典:值太多,无法解压缩,python,dictionary,blackjack,Python,Dictionary,Blackjack,请参阅下面的错误消息和字典: Traceback (most recent call last): File "C:/Users/richarddoi/Desktop/blackjack/test blackjack csv.py", line 9, in <module> for key,value in data: ValueError: too many values to unpack (expected 2) {'Ace of Hearts': 1, 'Kin
Traceback (most recent call last):
File "C:/Users/richarddoi/Desktop/blackjack/test blackjack csv.py", line 9, in <module>
for key,value in data:
ValueError: too many values to unpack (expected 2)
{'Ace of Hearts': 1, 'King of Hearts': 10, 'Queen of Hearts': 10, 'Jack of Hearts': 10, '10 of Hearts': 10, '9 of Hearts': 9, '8 of Hearts': 8, '7 of Hearts': 7, '6 of Hearts': 6, '5 of Hearts': 5, '4 of Hearts': 4, '3 of Hearts': 3, '2 of Hearts': 2, 'Ace of Spades': 1, 'King of Spades': 10, 'Queen of Spades': 10, 'Jack of Spades': 10, '10 of Spades': 10, '9 of Spades': 9, '8 of Spades': 8, '7 of Spades': 7, '6 of Spades': 6, '5 of Spades': 5, '4 of Spades': 4, '3 of Spades': 3, '2 of Spades': 2, 'Ace of Clubs': 1, 'King of Clubs': 10, 'Queen of Clubs': 10, 'Jack of Clubs': 10, '10 of Clubs': 10, '9 of Clubs': 9, '8 of Clubs': 8, '7 of Clubs': 7, '6 of Clubs': 6, '5 of Clubs': 5, '4 of Clubs': 4, '3 of Clubs': 3, '2 of Clubs': 2, 'Ace of Diamonds': 1, 'King of Diamonds': 10, 'Queen of Diamonds': 10, 'Jack of Diamonds': 10, '10 of Diamonds': 10, '9 of Diamonds': 9, '8 of Diamonds': 8, '7 of Diamonds': 7, '6 of Diamonds': 6, '5 of Diamonds': 5, '4 of Diamonds': 4, '3 of Diamonds': 3, '2 of Diamonds': 2}
但此时,当我尝试打印键和值时,使用以下代码:
for key,value in data:
print(key, value)
我收到一条错误消息。到目前为止,我已经成功地使用了txt和二进制文件。我以前在阅读文件时从未使用过词典
我的问题是:太多的价值观意味着什么?据我所知,有一本字典,上面写着:52张牌组中每张牌的名字和价值。我使用约定尝试获取键和值,但没有成功。在
中,对于键,数据中的值
,存在两个问题:
data
是字典列表。您可能是指第行的键和值的
,对行中的值执行
对于键,数据中的值
意味着数据
应该是解压到键
和值
中的一组对。但是,当您在数据上迭代时,首先得到的是它包含的大字典。为了尝试将字典解压成键,值
,Python迭代字典并获取所有52个键,这是太多的值
这样想:你不会这样做:
for row in data:
key, value = row
因为行有许多键和值。你也不会:
for k in row:
key, value = k
因为k
是行
的一个键,它是一个字符串。因此我们需要.items()
欢迎使用堆栈溢出!下面是一些提问的指导原则,以便从人们那里得到最有用的回答:stackoverflow.com/help/how-to-ask和stackoverflow.com/help/mcvephDon逐行阅读。只需将整个文件读入json.loads
。如果您需要更多帮助,您需要格式化此问题。内联代码可以使用反勾号,较长代码可以使用四个空格。@MichaelOhlrogge的意思是发布:and.I读入json.loads。霍尔先生,我根据你的建议添加了这个代码。对于键,第行中的值。items():打印(键+“”+str(值))。这迅速而令人满意地解决了我的问题。非常感谢。
for k in row:
key, value = k