Splunk Enterprise

Why are we getting Error "JSON in the request is invalid" while updating KV lookup from python code?

Siddharth
Path Finder

This is the code 


import requests
import datetime


now = datetime.datetime.now()

# print(now)
data = {'ticket_id':'CH-12345','response_code':200,'service':'Ec2','problem_type':'server_down','time':now}

headers = {
'Content-Type': 'application/json'
}
response = requests.post('https://localhost:8089/servicesNS/nobody/TA-cherwell-data-pull/storage/collections/data/cherwell_dat...' ,headers=headers ,data=data, verify=False , auth=('admin' , 'changeme'))


print(response.text) 

This is the error I am getting 

<msg type="ERROR">JSON in the request is invalid. (
JSON parse error at offset 1 of file "ticket_id=CH-12345&amp;response_code=200&amp;service=Ec2&amp;problem_type=server_down&amp;time=2022-08-31+20%3A28%3A53.237962": Unexpected character while parsing literal token: 'i'
)</msg>


Please let me know if you need any more help

Labels (1)
0 Karma
1 Solution

Siddharth
Path Finder

Got the solution 

This error was happening because of not sending data in JSON format  


just added this code 

data1=json.dumps(data)

and passed data1 instead of data and now it is working perfectly fine  

import requests
import datetime
import json


now = datetime.datetime.now()

# print(now)
data = {'ticket_id':'CH-12345','response_code':200,'service':'Ec2','problem_type':'server_down','time':str(now)}

 

headers = {
'Content-Type': 'application/json'
}
data1=json.dumps(data)
response = requests.post('https://localhost:8089/servicesNS/nobody/TA-cherwell-data-pull/storage/collections/data/cherwell_dat...' ,headers=headers, data=data1 , verify=False , auth=('admin' , 'changeme'))
print(response.status_code)
print(response.text)

View solution in original post

0 Karma

Siddharth
Path Finder

Got the solution 

This error was happening because of not sending data in JSON format  


just added this code 

data1=json.dumps(data)

and passed data1 instead of data and now it is working perfectly fine  

import requests
import datetime
import json


now = datetime.datetime.now()

# print(now)
data = {'ticket_id':'CH-12345','response_code':200,'service':'Ec2','problem_type':'server_down','time':str(now)}

 

headers = {
'Content-Type': 'application/json'
}
data1=json.dumps(data)
response = requests.post('https://localhost:8089/servicesNS/nobody/TA-cherwell-data-pull/storage/collections/data/cherwell_dat...' ,headers=headers, data=data1 , verify=False , auth=('admin' , 'changeme'))
print(response.status_code)
print(response.text)

0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

Great @Siddharth 

Please accept your answer to close this question.

KV

Happy Splunking

 

0 Karma
Get Updates on the Splunk Community!

Splunk Observability Cloud's AI Assistant in Action Series: Auditing Compliance and ...

This is the third post in the Splunk Observability Cloud’s AI Assistant in Action series that digs into how to ...

Splunk Community Badges!

  Hey everyone! Ready to earn some serious bragging rights in the community? Along with our existing badges ...

What You Read The Most: Splunk Lantern’s Most Popular Articles!

Splunk Lantern is a Splunk customer success center that provides advice from Splunk experts on valuable data ...