Skip to content

Commit

Permalink
Handle exceptions in the party importer
Browse files Browse the repository at this point in the history
  • Loading branch information
VirginiaDooley committed Oct 8, 2024
1 parent 1dce676 commit 15c41cd
Showing 1 changed file with 21 additions and 13 deletions.
34 changes: 21 additions & 13 deletions electionleaflets/apps/core/management/commands/import_parties.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,26 @@ def handle(self, **options):

while url:
req = requests.get(url, params=params)
results = req.json()
organizations = results["results"]
for org in organizations:
party_id = org["ec_id"]
print(party_id, org["name"])
(party_obj, created) = Party.objects.update_or_create(
party_id=party_id, defaults=self.clean_party(party_id, org)
)
try:
results = req.json()
except requests.exceptions.JSONDecodeError:
print("Failed to decode JSON response")
break
try:
organizations = results["results"]
for org in organizations:
party_id = org["ec_id"]
print(party_id, org["name"])
(party_obj, created) = Party.objects.update_or_create(
party_id=party_id, defaults=self.clean_party(party_id, org)
)

if org["emblems"]:
for emblem in org["emblems"]:
PartyEmblem.objects.update_or_create(
party_id=party_id, emblem_url=emblem["image"],
)
if org["emblems"]:
for emblem in org["emblems"]:
PartyEmblem.objects.update_or_create(
party_id=party_id, emblem_url=emblem["image"],
)
except KeyError:
print(results)
break
url = results.get("next", None)

0 comments on commit 15c41cd

Please sign in to comment.