大家好,我正在从这个文本文件中阅读我想要的所有字段
{"Tables":
[
{
"Name": "Event",
"EventType": "Summary",
"Fields": "*",
"SortBy": "WhenOccurred",
"SortType": "Date",
"Last": "01/14/2020 16:02:00 -05:00"
},
{
"Name": "Event",
"EventType": "Account",
"Fields": "*",
"SortBy": "WhenOccurred",
"SortType": "Date",
"Last": "01/14/2020 16:02:00 -05:00"
},
{
"Name": "Event",
"EventType": "Agent",
"Fields": "*",
"SortBy": "WhenOccurred",
"SortType": "Date",
"Last": "01/14/2020 16:02:00 -05:00"
},
{
"Name": "Event",
"EventType": "Server",
"Fields": "*",
"SortBy": "WhenOccurred",
"SortType": "Date",
"Last": "01/14/2020 16:02:00 -05:00"
},
{
"Name": "ADUser",
"Fields": "*",
"SortBy": "",
"SortType": "None"
}
]
}
我使用的逻辑遍历所有字段,并将响应输入get request json参数
with open('tables.txt') as json_file:
data = json.load(json_file)
for p in data['Tables']:
tableName = p['Name']
sortBy = p['SortBy']
lastGot = p['Last']
fields = p['Fields']
sortType = p['SortType']
eventType = p['EventType']
fileName = ""
sql = ""
if (tableName == 'Event'):
sql = "SELECT " + fields + " FROM " + tableName + " WHERE Event.EventType IN ('" + eventType + "') AND " + tableName + "." + sortBy + " > DateFunc('" + lastGot + "') ORDER BY " + tableName + "." + sortBy + ";"
fileName = "Event-" + eventType
else:
if (sortType == 'None'):
sql = "SELECT " + fields + " FROM " + tableName + ";";
else:
sql = "SELECT " + fields + " FROM " + tableName + " WHERE " + tableName + "." + sortBy + " > DateFunc('" + lastGot + "') ORDER BY " + tableName + "." + sortBy + ";"
fileName = tableName
event_data = sql
#print(event_data)
r = requests.get(url, headers=headers, json={"script": event_data},
verify=verify).json()
reponseobject = r
jsonlist = json.dumps(reponseobject)
print(jsonlist)
但它抛出了一个错误,我不知道如何纠正它,当所有领域我想要有任何建议吗
Traceback (most recent call last):
File "C:/Users/PycharmProjects/Vulnerabilities/main.py", line 31, in <module>
lastGot = p['Last']
KeyError: 'Last'
{'Name': 'Event', 'EventType': 'Summary', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
SELECT * FROM Event WHERE Event.EventType IN ('Summary') AND Event.WhenOccurred > DateFunc('01/14/2020 16:02:00 -05:00') ORDER BY Event.WhenOccurred;
{'Name': 'Event', 'EventType': 'Account', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
SELECT * FROM Event WHERE Event.EventType IN ('Account') AND Event.WhenOccurred > DateFunc('01/14/2020 16:02:00 -05:00') ORDER BY Event.WhenOccurred;
{'Name': 'Event', 'EventType': 'Agent', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
SELECT * FROM Event WHERE Event.EventType IN ('Agent') AND Event.WhenOccurred > DateFunc('01/14/2020 16:02:00 -05:00') ORDER BY Event.WhenOccurred;
{'Name': 'Event', 'EventType': 'server', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
SELECT * FROM Event WHERE Event.EventType IN ('server') AND Event.WhenOccurred > DateFunc('01/14/2020 16:02:00 -05:00') ORDER BY Event.WhenOccurred;
这是我试图抓住p的结果
{'Name': 'Event', 'EventType': 'Summary', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
{'Name': 'Event', 'EventType': 'Account', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
{'Name': 'Event', 'EventType': 'Agent', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
{'Name': 'Event', 'EventType': 'server', 'Fields': '*', 'SortBy': 'WhenOccurred', 'SortType': 'Date', 'Last': '01/14/2020 16:02:00 -05:00'}
error occurred
您的第五个字段没有任何
Last
键确保您有这个
Last
键。或者,如果您知道它将丢失并且这是预期的行为,那么使用dict.get
方法来使用默认值相关问题 更多 >
编程相关推荐