Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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编写了一个dict_Python_Json_Python 2.7_Dictionary - Fatal编程技术网

它用python编写了一个dict

它用python编写了一个dict,python,json,python-2.7,dictionary,Python,Json,Python 2.7,Dictionary,我用python创建了一个用于迭代多层字典的函数,并执行第二个函数ssocr,该函数需要四个参数:坐标、背景、前景、类型(它们是我的键的值)。 这是我的字典,它取自一个json文件 ` 我在倒数第二个iteritems的前台检查中出错,我的关键号码覆盖了关键分数您的问题在这里: if k != 'background' and 'foreground': # do something 而不是你认为它在做的检查。你在努力 if (k != "background") and ('for

我用python创建了一个用于迭代多层字典的函数,并执行第二个函数
ssocr
,该函数需要四个参数:坐标、背景、前景、类型(它们是我的键的值)。 这是我的字典,它取自一个json文件

`

我在倒数第二个iteritems的前台检查中出错,我的关键号码覆盖了关键分数

您的问题在这里:

if k != 'background' and 'foreground':
    # do something
而不是你认为它在做的检查。你在努力

if (k != "background") and ('foreground'):
    # do something
它的计算结果总是
True
(因为非空字符串被视为“truthy”)

只需将该行更改为:

if k not in ('background', 'foreground'):
    # do stuff

或者像你在函数中做的那样做(
如果k!=“players\u home”和k!=“players\u oppost”:
),那么你应该在做生意。

例外情况是:你调用的是字符串,而不是字典。如果你使用的是python 3.x,您应该使用
dic.items
而不是
dic.iteritems
@Arman python 2;它说,
unicode
我使用的是python2.7,在任何情况下,你都不提供这个函数的输入,所以这个问题基本上是无法回答的;找出错误的过程被称为调试,大概你想在调用iteritems之前打印
d['boxes']['players\u home']
d['boxes']['players\u home'][k]
的值。相当尴尬的错误,浪费了半个小时,而且没有注意到。谢谢。@Eldar88不必感到尴尬……我们都是这样。也就是说,我强烈建议您学习使用pdb(或者更好的是ipdb)在代码中设置断点,然后逐行查找问题。学习一项技能只需花费很小的时间,它将在未来回报你很多倍。我想,在过去的几年里,我仍然发现了一个问题,那就是超越关键cycle@Eldar88如果这个答案,请考虑点击在左边的检查标记/滴答,把它变成绿色。这标志着问题已解决,令您满意,并奖励您和回答者。
if k not in ('background', 'foreground'):
    # do stuff