簡體   English   中英

使用數據框獲取xls數據,並將其發送到API帖子

[英]Get xls data with dataframe, and send it to a API post

我正在讀取帶有熊貓的xls文件,然后進行了一些更改以更改列名並刪除一些值,現在我需要將此數據幀轉換為Zendesk所需格式的字典或json,並通過rest發送

這是我已經做的:

import pandas as pd

def test_loc(df):
    for i in df.index:
        if (df.at[i, 'type'] == 'Apoio'):
            df.at[i, 'type'] = 'Pergunta'


df = pd.read_excel('file.xlsx')
dropList = ['Número', 'Tipo', 'Cliente (Completo)', 'Responsável', 'Cliente: Classificação (Organização)', 'Justificativa', 'Indicador do SLA de Solução']
for i in dropList:
    df.drop(i, inplace=True, axis=1)
df = df.head(3)

df.columns = ['subject', 'created_at', 'type', 'priority', 'status', 'description']
test_loc(df)
df.to_dict()

這是dataFrame

數據幀

這是我需要構建dict / json的格式

{
  "ticket": {
    "requester_id": 827,
    "assignee_id": 19,
    "subject": "Some subject",
    "description": "A description",
    "created_at": "creation date",
    "status": "the status",
    "priority": "the priority"
    "comments": [
      { "author_id": 827, "value": "This is a comment", "created_at": "2009-06-25T10:15:18Z" },
      { "author_id": 19, "value": "This is a private comment", "public": false }
    ]
  }
}

您幾乎快到了。您知道如何進行1行。

現在,重復這些步驟,並繼續追加到對象數組。

最終,您將獲得所期望的對象數組,因此它將起作用。

我發現了該怎么做。

我首先創建了字典“票”。 然后使用split參數將DF轉換為字典。 之后,我將DF字典數據放入票證字典,訪問其索引。 我不知道這是否是最好的方法。 但這行得通。

di = df.to_dict('split')


ticket['ticket'] = {di['columns'][0]:di['data'][0][0], 
                    di['columns'][1]:di['data'][0][1],
                    di['columns'][2]:di['data'][0][2],
                    di['columns'][3]:di['data'][0][3],
                    di['columns'][4]:di['data'][0][4],
                    di['columns'][5]:di['data'][0][5]}

它顯示了這個json

{'ticket': {'subject': 'Atendimento - Jéssica - Erro no Código de Barras dos Boletos',
  'created_at': '2018-12-14T16:14:00Z',
  'type': 'question',
  'priority': 'low',
  'status': 'closed',
  'description': 'PROBLEMA:A cliente entrou com problemas na geração dos boletos, o código de barras estava desconfigurado.\xa0SOLUÇÃO:Acessamos a maquina da cliente e instalamos as fontes do windows AZALEIA, após isso ficou correto.',
  'custom_fields': [{'id': 360018333334,
    'value': 'adm__compras_e_licitações'}]}}

現在我面臨一個新問題,如何用幾個值來做到這一點? 我只用一行完成了上面的代碼,現在我需要遍歷每個值,並用幾張票構建一個json

如下面的代碼:

{'tickets': [{'subject': 'Atendimento - Jéssica - Erro no Código de Barras dos Boletos',
  'created_at': '2018-12-14T16:14:00Z',
  'type': 'question',
  'priority': 'low',
  'status': 'closed',
  'description': 'PROBLEMA:A cliente entrou com problemas na geração dos boletos, o código de barras estava desconfigurado.\xa0SOLUÇÃO:Acessamos a maquina da cliente e instalamos as fontes do windows AZALEIA, após isso ficou correto.',
  'custom_fields': [{'id': 360018333334,
    'value': 'adm__compras_e_licitações'}]}
   {'subject': 'Atendimento - Jéssica - Erro no Código de Barras dos Boletos',
  'created_at': '2018-12-14T16:14:00Z',
  'type': 'question',
  'priority': 'low',
  'status': 'closed',
  'description': 'PROBLEMA:A cliente entrou com problemas na geração dos boletos, o código de barras estava desconfigurado.\xa0SOLUÇÃO:Acessamos a maquina da cliente e instalamos as fontes do windows AZALEIA, após isso ficou correto.',
  'custom_fields': [{'id': 360018333334,
    'value': 'adm__compras_e_licitações'}]
   }
  ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM