Reputation: 23791
I am new to python and was wondering in the below python code how to add a variable conditionally.
requestBody = json.dumps({"accountId":accountId,
"emailSubject":customData.emailSubject,
"emailBlurb":customData.emailBlurb,
"customFields":customFields,
"status":customData.status,
"messageLock":customData.messageLock})
Like for example i want "custom"Fields:customFields
only to be included if its not null else not.How to do this??
Upvotes: 0
Views: 1769
Reputation: 47609
Create a dictionary and then add keys to it, then dump it. This general way of doing things allows you to use different logic for each key (e.g. if a given key is > 10
).
to_json = {"accountId":accountId,
"emailSubject":customData.emailSubject,
"emailBlurb":customData.emailBlurb,
"customFields":customFields,
"status":customData.status,
"messageLock":customData.messageLock}
if james is not None:
to_json['james'] = james
requestBody = json.dumps(to_json)
Upvotes: 2
Reputation: 368894
Using dict comprehension:
requestBody = json.dumps({key: value for key, value in [
("accountId",accountId),
("emailSubject",customData.emailSubject),
("emailBlurb",customData.emailBlurb),
("customFields",customFields),
("status",customData.status),
("messageLock",customData.messageLock),] if value is not None})
One-liner expanded:
pairs = [
("accountId", accountId),
("emailSubject", customData.emailSubject),
("emailBlurb", customData.emailBlurb),
("customFields", customFields),
("status", customData.status),
("messageLock", customData.messageLock),
]:
d = {}
for key, value in pairs:
if value is not None:
d[key] = value
requestBody = json.dumps(d)
Upvotes: 2