关于python:Namedtuple错误

Namedtuple error

我正在尝试使用NamedDuple将Python对象序列化为JSON。但我得到了这个错误。谷歌没有帮助。

1
2
3
4
5
6
7
8
Traceback (most recent call last):
 File"cpu2.py", line 28, in <module>
 cpuInfo = collections.namedtuple('cpuStats',('cpu.usr', ('str(currentTime) +""
 +str(cpuStats[0]) +" host="+ thisClient'
)), ('cpu.nice', ('str(currentTime) +""
 +str(cpuStats[1]) +" host="+ thisClient'
)), ('cpu.sys',('str(currentTime) +""
 +str(cpuStats[2]) +" host="+ thisClient'
)), ('cpu.idle',('str(currentTime) +""
 +str(cpuStats[3]) +" host="+ thisClient'
)))
 TypeError: namedtuple() takes at most 4 arguments (5 given)


这里有一个指向NamedDuple文档的链接。您没有正确初始化它。

我猜你应该如何初始化它:

1
2
3
4
5
6
7
8
cpuInfo = collections.namedtuple('cpuStats', ['usr', 'nice', 'sys', 'idle'])

# In this case, usr=str(currentTime) +"" +str(cpuStats[0]) +" host=" + thisClient
# You can figure the rest out...
info = cpuInfo(usr='fill',
               nice='this',
               sys='your',
               idle='self')

另外,您可能想阅读这个问题,它讨论如何在JSON中序列化NamedDuples。