我有一个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行,in x=get_nodes_opennms()文件“python_opennms.py”,第15行,in get_nodes_opennms for i in JSON.load(open('out.txt'))[“alarm”]:文件“/usr/lib/python2.7/JSON/init.py”,第291行,in load**kw)文件“/usr/lib/python2.7/JSON/init.py”,第339行,in load return_default_decoder.decode文件“/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 object could be decoded”)ValueError:No JSON object could be decoded“
有人能帮忙吗
您正在打开写入后未关闭的文件。可能是系统没有将流缓冲区完全刷新到磁盘,所以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"]:
我试图将一个JSON发送给一个REST控制器,它是用Spring编写的,不管我做了什么尝试,Jackson抛出了一个异常: 这是JSON: 有什么建议吗?
问题内容: 我在JSON方面遇到问题,我似乎无法弄清为什么它不起作用。这应该输出JSON。 这是我的代码 我收到这个错误 如果有人可以救援,那就太好了! 问题答案: 看来您的JSON无效。在这种情况下,这完全取决于服务器发送给您的数据(您未显示)。我建议通过JSON验证程序运行响应。
问题内容: 当我在Kibana中看到结果时,我发现JSON中没有字段,而且,该字段仅包含。 是否可以解析json中的字段并将其显示在Kibana中?我有以下配置: 以及以下JSON文件: 问题答案: 是。您需要在配置中添加一个过滤器,如下所示。 在这里的文档中对此进行了很好的描述 编辑 json编解码器似乎不喜欢传入数组。单个元素与此配置一起工作: 输入: Logstash结果: } 现在有了一个
问题内容: 我正在尝试从FlickR解析JSON响应,但是遇到了困难。我已经进行了一些测试,并且收到200的响应代码,并且能够使用日志记录拦截器查看实际的JSON。 但是,当我尝试访问JSON对象时,我收到了一个空指针。我觉得这与我的映射/ JSON到POJO有关: 相片: 照片: JSON响应: LOGCAT 72行 问题答案: 您的课程不适合服务器 响应, 因此您的身体为 Null 。您的模型
问题内容: 加载似乎包含 TAB 字符的JSON文件时,我遇到了解析问题。 当我转到http://jsonlint.com/时,我输入了带有TAB字符的部分: 验证者抱怨: 这实际上是有问题的JSON文本的复制/粘贴。 我曾尝试加载该文件,并没有成功。如何正确加载?我应该只预处理文件并用空格替换TAB 吗?还是我在这里想念的东西? 更新: 这也是一个有问题的示例: 问题答案: 从JSON标准: 在
GSON不是在一开始就解析我传递的整个JSON字符串吗?因此,最终,我希望新的数据源是对象。那可行吗?