Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:从json文件读取字典:值太多,无法解压缩_Python_Dictionary_Blackjack - Fatal编程技术网

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