Remover Caracteres de Um Arquivo JSON em Python
Olá comunidade!
Gostaria de ajuda na manipulação de arquivo JSON em Python. Especificamente, gostaria de remover dois caracteres específicos de uma arquivo em JSON.
Segue abaixo script que gera o arquivo:
import requests
def f_answers():
for ticket_number in range (0, 1000):
no_data1 = '{"error":"Ticket not found"}'
no_data2 ='[]'
url = 'https://api.tiflux.com/api/v1/tickets/{}/answers?offset=1&limit=200'.format(ticket_number)
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic {token}'
}
answers = requests.get(url, headers = headers)
if answers.text == no_data1:
print('Ticket nº{} não existe.'.format(ticket_number))
elif answers.text == no_data2:
print('Ticket nº{} não há respostas.'.format(ticket_number))
else:
file_json = open('/home/trade/_business_intelligence/Indicadores/infra_sustentacao/json/_tiflux/_answers/_answers.json', 'a', encoding = 'utf-8')
file_json.write(answers.text)
url = 'https://api.tiflux.com/api/v1/tickets/{}/answers?offset=1&limit=200'.format(ticket_number)
answers = requests.get(url, headers = headers)
f_answers()
Este SCRIPT retorna uma lista de respostas existentes em um determinado ticket. Então, criei esta função para armazenar todas as respostas no mesmo arquivo, mas quando armazena as respostas não fica no padrão JSON devido os caracteres []
que envelopam cada resposta.
Caso consiga remover os caracteres ][
entre uma resposta e outra eu resolvo o problema.
Obrigado comunidade!
Sem ver o json que é retornado realmente fica complicado de ter uma boa idéia de como resolver, mas acredito que com um simples .replace('[', '').replace(']', '')
dê para resolver.
PS: Não que seja a melhor forma, mas é como eu faria. 😁
PESSOAL, DEU CERTO!!!
Com nossas conversas, o caminho foi 'clareando'. Desenvolvi essa solução para o problema.
import requests
def f_answers():
_list = ''
for ticket_number in range (0, 30):
no_data1 = '{"error":"Ticket not found"}'
no_data2 ='[]'
url = 'https://api.tiflux.com/api/v1/tickets/{}/answers?offset=1&limit=200'.format(ticket_number)
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic {token}'
}
answers = requests.get(url, headers = headers)
if answers.text == no_data1:
print('O ticket nº{} não existe.'.format(ticket_number))
elif answers.text == no_data2:
print('O ticket nº{} não há respostas.'.format(ticket_number))
else:
_list = _list + answers.text
print(_list)
url = 'https://api.tiflux.com/api/v1/tickets/{}/answers?offset=1&limit=200'.format(ticket_number)
answers = requests.get(url, headers = headers)
file_json = open('/home/trade/_business_intelligence/Indicadores/infra_sustentacao/json/_tiflux/_answers/_answers_1.json', 'w', encoding = 'utf-8')
file_json.write(_list.replace('][', ','))
f_answers()
Arquivo gerado:
[
{
"id": 6293419,
"author": "Arlem de Bairros Mota",
"created_at": "2022-11-21 19:07:14",
"name": "apontamento 8x5",
"ticket_number": 9,
"user": {
"id": 49690,
"name": "Arlem de Bairros Mota"
}
},
{
"id": 6389699,
"author": "Everton Luiz da Silva",
"created_at": "2022-11-29 18:33:59",
"name": "teste ",
"ticket_number": 12,
"user": {
"id": 49948,
"name": "Everton Luiz da Silva"
}
},
{
"id": 6389452,
"author": "Everton Luiz da Silva",
"created_at": "2022-11-29 18:27:21",
"name": "Teste de apontamento²",
"ticket_number": 12,
"user": {
"id": 49948,
"name": "Everton Luiz da Silva"
}
},
{
"id": 6389350,
"author": "Everton Luiz da Silva",
"created_at": "2022-11-29 18:24:40",
"name": "Teste de apontamento",
"ticket_number": 12,
"user": {
"id": 49948,
"name": "Everton Luiz da Silva"
}
},
{
"id": 6358439,
"author": "Arlem de Bairros Mota",
"created_at": "2022-11-25 20:35:10",
"name": "Somente teste",
"ticket_number": 20,
"user": {
"id": 49690,
"name": "Arlem de Bairros Mota"
}
}
]
Estou consumindo essa API pra gerar esses arquivos e através do Power BI desenvolver indicadores de desempenho/performance.
VALEU COMUNIDADE!!!