使用python导入JSON文件

时间:2018-05-02 15:10:04

标签: python json api

我已经用python导入了一个json文件,但仍然读取了第一个json元素 我需要添加一个循环来读取所有文件

JSON文件内容

 [
        {
            "severity": 4,
            "status": "OPEN",
            "id": 1987,
            "description": "Multiple Login Failures for the Same User containing Bad Username",
            "start_time": 1525269490400
        },
        {
            "severity": 4,
            "status": "OPEN",
            "id": 1986,
            "description": "Multiple Login Failures for the Same User containing Bad Username",
            "start_time": 1525269181679
        },
.
.
.
.
.
    ]

这是python脚本

# Prepare the sample Alert

with open('output.json') as json_data:
    data = json.load(json_data,) 
if severity=data[0]['severity'] < 4:
    severity=1
elif severity=data[0]['severity'] > 6:
    severity=3
else:
    severity=2  
alert = Alert(title=data[0]['description'],
              date=data[0]['start_time'],
              severity=severity,
              description='N/A',
              type='Offense',
              source='QradarSiem',
              sourceRef=data[0]['id'])

我知道我需要使用

for line in f:
    data.append(json.loads(line))

但我不知道在哪里以及如何使用它,你能帮忙吗?

3 个答案:

答案 0 :(得分:1)

  

我知道我需要使用@NamedQuery(name="getMatchData",query="select PM from PlayerMatch PM " + "inner join Team T on PM.teamId = T.teamId " + "inner join Player P on PM.playerId = P.playerId " + "where PM.matchId = :matchID")

为什么你会这样做?你已经解析了整个文件,你有一个列表对象,所有你要做的就是迭代列表。

for line in f:       data.append(json.loads(line))"

答案 1 :(得分:1)

使用

 data = json.load(json_data,)

您已经加载了所有数据。现在你可以迭代'数据':

for item in data:
    if item['severity'] == 4:
        do_something(item)

答案 2 :(得分:0)

尝试:

import json
with open("infile.json","r") as infile:
    val = infile.read()
    json=json.loads(val)
print(json)