2

namedtuple を使用して Python オブジェクトを JSON にシリアライズしようとしています。しかし、私はこのエラーが発生します。Google は役に立ちません。

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)
4

1 に答える 1

5

ここには、namedtuple のドキュメントへのリンクがあります。あなたはそれを正しく初期化していません。

どのように初期化する必要があると思いますか:

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 での名前付きタプルのシリアル化について説明しているこの質問を読みたいと思うかもしれません。

于 2013-09-09T21:42:56.203 に答える