I have a json data set I'm trying to insert into a database. To do so, I need placeholders "" for non-existent data. In the example below, if there's no email address, I need the insert statement to be (....,"boo",....) instead of (....,"[email protected]",....). I have tried checking for list length, using not, email == [], etc. Every way I know how or have Googled, and none are working.
Example data:
{
"data": [
{
"campsites": {
...
},
"contacts": {
"emailAddresses": [],
"phoneNumbers": []
},
...
My code for this particular section:
results = response.json()['data']
for item in results:
for email in item['contacts']['emailAddresses']:
if email == []:
print("boo")
else:
print(email['emailAddress'])
The if statement (regardless of how I've tried so far), does not execute, and I get a printed list of only the email addresses if they exist:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
I need:
boo
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
boo
[email protected]
[email protected]
CodePudding user response:
If the list of "emailAddresses"
is empty, the for loop doesn't get executed. Accordingly print("boo")
neither.
You need to check the list first, before iterate through the list:
results = response.json()["data"]
for item in results:
emails = item["contacts"]["emailAddresses"]
if emails:
for email in emails:
print(email)
else:
print("boo")