jsonのいくつかのフィールドを解析しようとしています。これはコマンドラインの出力です。しかし、私は、任意のフィールドにアクセスすることができない、私はいつもこのエラーをしました:json出力の解析中にタイプエラーが発生する
TypeError: 'int' object has no attribute '__getitem__'
私のJSON出力は、このようなものです:
{"result":"success","totalresults":"1","startnumber":0,"numreturned":1,"tickets":{
"ticket":[
{
"id":"2440",
"tid":"473970",
"deptid":"1",
"userid":"0",
"name":"John",
"email":"[email protected]",
"cc":"","c":"P1gqiLym",
"date":"2016-07-01 13:00:02",
"subject":"test",
"status":"stato",
"priority":"Medium",
"admin":"",
"attachment":"image001.jpg",
"lastreply":"",
"flag":"0",
"service":""
}
]
}
}
と私のコードはこれです:
import json
import sys
import subprocess
output=subprocess.call('pywhmcs --url http://whmcs.test.it --username myuser --password mypass --action gettickets --params status="tickets" email="[email protected]"',shell=True)
values = json.loads(str(output))
print (values['result'])
私はどのフィールドにもアクセスできないのですか?多分私はこのタイプのサブプロセス出力を解析できませんか?
おかげでみんな
あなたが ''プリント(値[ '結果を'])を意味しないのですか?そしてsubprocess.callはintを返します。これはjson文字列を取得する方法ではありません。 – polku
お手数ですが申し訳ありませんが、私は同じエラーがあります。 よくos.systemでも同じエラーを試みます...文字列にキャストしようとしています – tafazzi87
出力を確認しますか?それが適切な応答を持っていることを確認してください。 –