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]
if emails := item['contacts']['emailAddresses']: for email in emails ... else: print("boo")item['contacts']['emailAddresses']is the list, sofor email in item['contacts']['emailAddresses']will give you each item in the list ... if the items are strings thenif email == []doesn't make sense. Yourifstatement should be outside the for loop, instead of inside it, and should check thatitem['contacts']['emailAddresses']is not an empty list. @Olvin Roght gives a nice compact version of that above