python-3.x 用于比较和生成票据的Phython脚本

whhtz7ly  于 2023-03-24  发布在  Python
关注(0)|答案(1)|浏览(107)

我试图创建一个Python脚本来从活动警报csv文件生成票证。但在生成票证之前,我需要将其与事件票证csv文件进行比较,该文件保留针对警报ID提出的所有票证,如果票证日期小于3天..提出一个新的并更新csv2为我有限的Python脚本知识CSV1道歉

Alert_ID    Country     Severity    Timestamp
1234        US      Critical    2023-03-23 00:12:13     
1235        UK      Critical    2023-03-23 00:11:14 
1236        SG      Critical    2023-03-23 00:11:13 
1237        HK      Critical    2023-03-23 00:16:13    

CSV2
Alert_ID    Incident_No     Timestamp
1234        INC01           2023-02-17  
1235        INC02           2023-02-18
1236        INC03           2023-02-19
1237        INC04           2023-02-19 
1234        INC01           2023-02-20  
1235        INC02           2023-02-23 
1236        INC03           2023-02-23 
1237        INC04           2023-02-23
import pandas as pd
from pandas import *
from datetime import datetime,date
csv2 = pd.read_csv('.c:\temp\csv2.csv')
cav1 = pd.read_csv('c:\temp\csv1.csv')
if csv1[~csv1['Alert_id'].isin csv2['Alert_ID'])]
      Raise ticket
      update csv2
eleif csv1[csv1['Alert_id'].isin csv2['Alert_ID'])] & (datetime.datetime.utcnow() - 
       csv2['timestamp'] ) < 4
       Raise ticket
       update csv2 
else
       ignore
z9smfwbn

z9smfwbn1#

你可以做这样的事。

import pandas as pd
from datetime import datetime, timedelta

# Read the CSV files
csv1 = pd.read_csv('c:/temp/csv1.csv')
csv2 = pd.read_csv('c:/temp/csv2.csv')

# Convert the Timestamp columns to datetime objects
csv1['Timestamp'] = pd.to_datetime(csv1['Timestamp'])
csv2['Timestamp'] = pd.to_datetime(csv2['Timestamp'])

# Define the threshold for raising a new ticket
ticket_threshold = timedelta(days=3)

# Loop through the rows in csv1
for index, row in csv1.iterrows():
    # Check if the Alert ID is in csv2
    if row['Alert_ID'] in csv2['Alert_ID'].values:
        # Check if the most recent Incident Ticket is less than 3 days old
        last_ticket = csv2.loc[csv2['Alert_ID'] == row['Alert_ID']].iloc[-1]
        if datetime.utcnow() - last_ticket['Timestamp'] < ticket_threshold:
            # Do not raise a new ticket, continue to the next Alert ID
            continue
    
    # Raise a new ticket and update csv2
    new_ticket = pd.DataFrame({
        'Alert_ID': [row['Alert_ID']],
        'Incident_No': ['INC{:02d}'.format(len(csv2)+1)],
        'Timestamp': [datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')]
    })
    csv2 = pd.concat([csv2, new_ticket])
    print(f"New ticket raised for Alert ID {row['Alert_ID']}")
    
# Write the updated csv2 to a file
csv2.to_csv('c:/temp/csv2.csv', index=False)

如果管用就告诉我。

相关问题