在Python中识别JSON数据中的空列表



我有一个json数据集,我正试图插入到数据库中。为此,我需要占位符"对于不存在的数据。在下面的例子中,如果没有电子邮件地址,我需要插入语句为(…,"boo",…(而不是(…,";me@mail.com&",…(。我试过检查列表长度,使用not,email==[]等。我知道如何或已经在谷歌上搜索过,但都不起作用。

示例数据:

{
"data": [
{
"campsites": {
...
},
"contacts": {
"emailAddresses": [],
"phoneNumbers": []
},
...

我对这个特定部分的代码:

results = response.json()['data']
for item in results:
for email in item['contacts']['emailAddresses']:
if email == []:
print("boo")
else:
print(email['emailAddress'])

if语句(无论我到目前为止如何尝试(都不会执行,并且我只得到一个打印的电子邮件地址列表(如果存在的话(:

GRSM_Smokies_Information@nps.gov
CATO_superintendent@nps.gov
dyanna.threeirons@crow-nsn.gov
ozar_campground_operation@nps.gov
orpi_information@nps.gov
ozar_campground_operations@nps.gov
biso_information@nps.gov
chis_information@nps.gov
info@antelopepointmarina.com

我需要:

boo
GRSM_Smokies_Information@nps.gov
CATO_superintendent@nps.gov
dyanna.threeirons@crow-nsn.gov
ozar_campground_operation@nps.gov
orpi_information@nps.gov
ozar_campground_operations@nps.gov
biso_information@nps.gov
boo
chis_information@nps.gov
info@antelopepointmarina.com

如果"emailAddresses"的列表为空,则不会执行for循环。相应地CCD_ 2也没有。

在遍历列表之前,您需要首先检查列表:

results = response.json()["data"]
for item in results:
emails = item["contacts"]["emailAddresses"]
if emails:
for email in emails:
print(email)
else:
print("boo")

最新更新