我想要实现的是从我们使用的工单应用程序中提取csv文件。然后使用panda进行转换,并删除不必要的列。然后使用webhook将这些信息发布到slack中我无法访问松弛的API到目前为止,这就是我想到的,但我发现很难将数据转换为我可以发送的格式。
from time import sleep
from requests.models import Response
from selenium import webdriver
import os
import pandas as pd
import json
import requests
def WOPULLER_CSV():
options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : 'C:\WO_CSV'}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(options=options)
driver.get('https://portal.ez.na.rme.logistics.a2z.com/work-orders?preset=allCSS&customPreset=allCSS&scheduledStartDate=nextOneWeek&status=RS,S')
SignInASButton = driver.execute_script("return document.querySelector('ez-rme-app').shadowRoot.querySelector('ez-login-page').shadowRoot.querySelector('ez-login').shadowRoot.querySelector('mwc-button:nth-child(4)').shadowRoot.querySelector('#button')")
SignInASButton.click()
sleep(1)
SingleSignOnButton = driver.execute_script("return document.querySelector('ez-rme-app').shadowRoot.querySelector('ez-login-page').shadowRoot.querySelector('ez-login').shadowRoot.querySelector('#sso-login').shadowRoot.querySelector('#button')")
SingleSignOnButton.click()
sleep(8)
if os.path.exists("C:\WO_CSV\WorkOrderExport.csv"):
os.remove("C:\WO_CSV\WorkOrderExport.csv")
CSVButton = driver.execute_script("return document.querySelector('body > ez-rme-app').shadowRoot.querySelector('#content > main > ez-work-order-list-page').shadowRoot.querySelector('div > mwc-button:nth-child(1)').shadowRoot.querySelector('#button')")
CSVButton.click()
sleep(1)
def WEBHOOK():
#value = pd.read_json('C:WO_CSVWorkOrderExport.json')
value = wo
web_hook_link = 'WEBHOOK LINK'
headers = {
'Content-Type': 'application/json',
}
data = json.dumps({"name": value})
response = requests.post(web_hook_link, headers=headers, data=data)
print (response)
#WOPULLER_CSV()
df = pd.read_csv (r'C:WO_CSVWorkOrderExport.csv')
df = df.sort_values(by='Scheduled Start Date', ascending=False)
df = df.drop(columns=['Organization', 'Original PM due date', 'PM Compliance Max Date', 'PM Compliance Min Date', 'Scheduled End Date', 'Priority', 'Equipment Criticality', 'Equipment Alias', 'Type', 'Index', 'Equipment Description' ])
if os.path.exists("C:WO_CSVWorkOrderExport.json"):
os.remove("C:WO_CSVWorkOrderExport.json")
df.to_json('C:WO_CSVWorkOrderExport.json')
wo = pd.read_json (r'C:WO_CSVWorkOrderExport.json')
WEBHOOK()
print (wo)
CSV文件中的信息:CSV后Colum Drop
我试图在slack中实现的类似于我只是从excel xlsx文件中复制和粘贴。松弛中没有MD格式,所以这是最好的选择。松弛中的格式
好的,我找到了答案。为了发布到slack,你需要将csv文件制成表格,然后使用json.dump
有什么方法可以将python pandas数据帧发布到slack
pretty-printing-a-pandas-dataframe
def WEBHOOK():
#value = pd.read_json('C:WO_CSVWorkOrderExport.json')
value = tab
web_hook_link = 'webhook link'
headers = {
'Content-Type': 'application/json',
}
data = json.dumps({"name": value})
response = requests.post(web_hook_link, headers=headers, data=data)
print (response)
#WOPULLER_CSV()
df = pd.read_csv (r'C:WO_CSVWorkOrderExport.csv')
df = df.sort_values(by='Scheduled Start Date', ascending=False)
df = df.drop(columns=['Organization', 'Original PM due date', 'PM Compliance Max Date', 'PM Compliance Min Date', 'Scheduled End Date', 'Priority', 'Equipment Criticality', 'Equipment Alias', 'Type', 'Index', 'Equipment Description' ])
**tab = (tabulate(df, tablefmt="grid"))**
WEBHOOK()
print (tab)