1 """Response output conversion tools to help parse suds
2 response object output.
3 """
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
34 """Converts suds object to dict very quickly.
35 Does not serialize date time or normalize key case.
36 :param obj: suds object
37 :return: dict object
38 """
39 if not hasattr(obj, '__keylist__'):
40 return obj
41 data = {}
42 fields = obj.__keylist__
43 for field in fields:
44 val = getattr(obj, field)
45 if isinstance(val, list):
46 data[field] = []
47 for item in val:
48 data[field].append(basic_sobject_to_dict(item))
49 else:
50 data[field] = basic_sobject_to_dict(val)
51 return data
52
53
55 """
56 Converts a suds object to a dict.
57 :param json_serialize: If set, changes date and time types to iso string.
58 :param key_to_lower: If set, changes index key name to lower case.
59 :param obj: suds object
60 :return: dict object
61 """
62 import datetime
63
64 if not hasattr(obj, '__keylist__'):
65 if json_serialize and isinstance(obj, (datetime.datetime, datetime.time, datetime.date)):
66 return obj.isoformat()
67 else:
68 return obj
69 data = {}
70 fields = obj.__keylist__
71 for field in fields:
72 val = getattr(obj, field)
73 if key_to_lower:
74 field = field.lower()
75 if isinstance(val, list):
76 data[field] = []
77 for item in val:
78 data[field].append(sobject_to_dict(item, json_serialize=json_serialize))
79 else:
80 data[field] = sobject_to_dict(val, json_serialize=json_serialize)
81 return data
82
83
85 """
86 Converts a suds object to json.
87 :param obj: suds object
88 :param key_to_lower: If set, changes index key name to lower case.
89 :return: json object
90 """
91 import json
92 data = sobject_to_dict(obj, key_to_lower=key_to_lower, json_serialize=True)
93 return json.dumps(data)
94