1. Overview
  2. Post-processing
  3. 🐍 Loops in Python

🐍 Loops in Python

Let's say you have a books array:

# data['books']:
[
{ "name": 'Book 1', "price": 44.99, "qty": 1 },
{ "name": 'Book 2', "price": 9.99, "qty": 3 },
{ "name": 'Book 3', "price": 24.99, "qty": 2 }
]

"For" loops

At the post-processing step you may want to add 3 fields: In each book item add a total and formatted_total fields and calculate the order_total amount.

# Option 1. "For" loop
total = 0
for book in data['books']:
book['total'] = book['price'] * book['qty']
book['formatted_total'] = '$' + str(book['total'])
total += book['total'] # accumulate order total
data['order_total'] = total

"For" loops with indexes

Alternatively, you can use a "for" loop with indexes:

# Option 2. "For" loop with indexes
total = 0
for index, book in enumerate(data['books']):
book_total = book['price'] * book['qty']
data['books'][index]['total'] = book_total
data['books'][index]['formatted_total'] = '$' + str(book_total)
total += book_total
data['order_total'] = total

"For" loops with range

... or using the range function:

# Option 3. "For" loop with range
total = 0
books_cnt = len(data['books']) # books_cnt = 3
for ind in range(0, books_cnt):
book = data['books'][ind]
book['total'] = book['price'] * book['qty']
book['formatted_total'] = '$' + str(book['total'])
total += book['total']
data['order_total'] = total

Now the data dictionary should look like this:

{
"books": [
{
"name": "Book 1",
"price": 44.99,
"qty": 1,
"total": 44.99,
"formatted_total": "$44.99"
},
{
"name": "Book 2",
"price": 9.99,
"qty": 3,
"total": 29.97,
"formatted_total": "$29.97"
},
{
"name": "Book 3",
"price": 24.99,
"qty": 2,
"total": 49.98,
"formatted_total": "$49.98"
}
],
"order_total": 124.94
}

Iterate over fields

Finally, in some complex cases you may want to iterate over each parsed field:

for field_name, field_value in data.items():
# your code goes here
Note: 'While' loops are not supported.

Was this article helpful?