Python Pandas and Slack Webhooks Requests.post



我想要实现的是从我们使用的工单应用程序中提取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)

最新更新