私はjsonダンプを持っています
{
"alarm": [
{
"ackId": 16,
"count": 1,
"description": "<p>A SSH outage was identified on interface\n 10.21.5.39.</p> <p>A new Outage record has been\n created and service level availability calculations will be\n impacted until this outage is resolved.</p>",
"firstEventTime": 1495277308427,
"id": 16,
"ifIndex": null,
"ipAddress": "10.21.5.39",
"lastEvent": {
"createTime": 1495277308437,
"description": "<p>A SSH outage was identified on interface\n 10.21.5.39.</p> <p>A new Outage record has been\n created and service level availability calculations will be\n impacted until this outage is resolved.</p>",
"display": "Y",
"host": "opennms",
"id": 625,
"ifIndex": null,
"ipAddress": "10.21.5.39",
"log": "Y",
"logMessage": "SSH outage identified on interface 10.21.5.39 with reason code: Connection refused (Connection refused).",
"nodeId": 9,
"nodeLabel": "fra01-api-01",
"parameters": [
{
"name": "eventReason",
"type": "string",
"value": "Connection refused (Connection refused)"
}
],
"serviceType": {
"id": 5,
"name": "SSH"
},
"severity": "MINOR",
"source": "OpenNMS.Poller.DefaultPollContext",
"time": 1495277308427,
"uei": "uei.opennms.org/nodes/nodeLostService"
},
"lastEventTime": 1495277308427,
"logMessage": "SSH outage identified on interface 10.21.5.39 with reason code: Connection refused (Connection refused).",
"managedObjectInstance": null,
"managedObjectType": null,
"nodeId": 9,
"nodeLabel": "fra01-api-01",
"ossPrimaryKey": null,
"parameters": [
{
"name": "eventReason",
"type": "string",
"value": "Connection refused (Connection refused)"
}
],
"qosAlarmState": null,
"reductionKey": "uei.opennms.org/nodes/nodeLostService::9:10.21.5.39:SSH",
"serviceType": {
"id": 5,
"name": "SSH"
},
"severity": "MINOR",
"suppressedTime": 1495277308427,
"suppressedUntil": 1495277308427,
"type": 1,
"uei": "uei.opennms.org/nodes/nodeLostService",
"x733AlarmType": null,
"x733ProbableCause": 0
}
],
"count": 1,
"offset": null,
"totalCount": 1
}
jsonから詳細を取得するために小さなコードを書きました
def get_nodes_opennms():
headers={'Accept': 'application/json' }
x = requests.get('http://localhost:8980/opennms/rest/alarms?comparator=ge&severity=MINOR?limit=0',headers=headers , auth=('admin', 'Op3AD'))
parsed = json.loads(x.content)
#print json.dumps(parsed, indent=4, sort_keys=True)
wriet_me_to_file = json.dumps(parsed, indent=4, sort_keys=True)
f=open('out.txt', 'w')
f.write(wriet_me_to_file)
for i in json.load(open('out.txt'))["alarm"]:
try:
print (["ipAddress"])
print (["logMessage"])
except Exception as e:
print "something is wrong"
これは私にエラーを投げています:
トレースバック (最後の呼び出し): ファイル "python_opennms.py"、行 24、x = get_nodes_opennms() のファイル "python_opennms.py"、行 15、get_nodes_opennms for i in json.load(open('out.txt') ))["alarm"]: ファイル "/usr/lib/python2.7/json/ init .py"、291 行、load **kw) ファイル "/usr/lib/python2.7/json/ init . py"、行 339、ロードで _default_decoder.decode(s) ファイル "/usr/lib/python2.7/json/decoder.py"、行 364、decode obj、end = self.raw_decode(s, idx=) を返します。 _w(s, 0).end()) ファイル "/usr/lib/python2.7/json/decoder.py"、382 行目、raw_decode で発生します ValueError("No JSON オブジェクトをデコードできませんでした") ValueError:No JSONオブジェクトをデコードできました
誰か助けてくれませんか
書き込み後に閉じていないファイルを開いています。おそらく、システムがストリーム バッファをディスクに完全にフラッシュしなかったため、open('out.txt')
コンテンツが不完全なファイルが見つかりました。
最善かつ最も安全なアプローチは次のとおりです。
with open('out.txt', 'w') as f:
f.write(wriet_me_to_file)
for i in json.load(open('out.txt'))["alarm"]:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加