Python Forum
Object of type set is not JSON serializable
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Object of type set is not JSON serializable
#1
Hi

I've a new problem with json / python.

My json is:
Output:
{ "domaine": { "name": { "service": ["service1", "service2"], "threshold": ["100", "200"] }, ...
On my python script, I'm trying to make a request post to my icinga configuration for monitoring.

#!/usr/bin/env python3
..
with open('/tmp/config.json') as json_file1:
            data1 = json.load(json_file1)
            for domaine, value in data1.items():
                    for name, value2 in value.items():
                            service = data1[domaine][name]['service']
                            threshold = data1[domaine][name]['threshold']

                            try:
                                url = "https://localhost:5665/v1/objects/hosts/"
                                request_url = url+hostname
                                headers = {
                                    'Accept': 'application/json',
                                    'X-HTTP-Method-Override': 'PUT'
                                }
                                data = {
                                    "templates": service,
                                    "attrs": {
                                                "address":"BLABLA",
                                                "zone":"BLIBLI",
                                                "vars": { threshold }
                                    }
                                }
                                r = requests.post(request_url,
                                    headers=headers,
                                    verify=False,
                                    auth=('admin', 'XXXXXXXXXXXXXXXXXX'),
                                data=json.dumps(data))
Result is:
Output:
"vars": { threshold } TypeError: unhashable type: 'list'
If I change
Output:
threshold = data1[domaine][name]['threshold'] to: threshold = tuple(data1[domaine][name]['threshold'])
My result is:
Output:
TypeError: Object of type set is not JSON serializable
I'm trying to change key, format, ... but i'm blocked with this point...

Thanks for help
Reply


Messages In This Thread
Object of type set is not JSON serializable - by enigma619 - Dec-19-2019, 12:19 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  declaring object parameters with type JonWayn 2 857 Dec-13-2022, 07:46 PM
Last Post: JonWayn
  Deserialize Complex Json to object using Marshmallow tlopezdh 2 2,086 Dec-09-2021, 06:44 PM
Last Post: tlopezdh
Star Type Error: 'in' object is not callable nman52 3 3,331 May-01-2021, 11:03 PM
Last Post: nman52
  finding and deleting json object GrahamL 1 4,801 Dec-10-2020, 04:11 PM
Last Post: bowlofred
  Serializable JarredAwesome 4 2,169 Nov-19-2020, 11:50 PM
Last Post: JarredAwesome
  TypeError: 'type' object is not subscriptable Stef 1 4,445 Aug-28-2020, 03:01 PM
Last Post: Gribouillis
  isinstance() always return true for object type check Yoki91 2 2,503 Jul-22-2020, 06:52 PM
Last Post: Yoki91
  AttributeError: type object 'FunctionNode' has no attribute '_TestValidateFuncLabel__ binhduonggttn 0 2,220 Feb-19-2020, 11:29 AM
Last Post: binhduonggttn
  Type hinting - return type based on parameter micseydel 2 2,429 Jan-14-2020, 01:20 AM
Last Post: micseydel
  type of object as a string Skaperen 1 2,250 Dec-02-2019, 08:01 AM
Last Post: midarq

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020