将python中的字典值从str转换为嵌套字典中的int

Jac*_*ent 1 python dictionary

我目前有一个嵌套字典,如下所示:

series = { 

'a': {'foo':'2', 'bar':'3', 'baz':'7', 'qux':'1'},
'b': {'foo':'6', 'bar':'4', 'baz':'3', 'qux':'0'},
'c': {'foo':'4', 'bar':'5', 'baz':'1', 'qux':'6'}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将字符串中的值转换为整数。

我试过这种方法:

newseries = dict((k,int(v)) for k,v in series.items())
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一条错误消息:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'dict'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Ilj*_*ilä 5

在这种情况下,您必须更深入:

In [4]: {k: {kk: int(vv) for kk, vv in v.items()}
         for k, v in series.items()}
Out[4]: 
{'a': {'bar': 3, 'baz': 7, 'foo': 2, 'qux': 1},
 'b': {'bar': 4, 'baz': 3, 'foo': 6, 'qux': 0},
 'c': {'bar': 5, 'baz': 1, 'foo': 4, 'qux': 6}}
Run Code Online (Sandbox Code Playgroud)

您自己的示例只是迭代具有(嵌套)值的series的键值对dict

请注意,这不是通用解决方案。为此,您需要递归或堆栈。