Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# Python Examples

Here we have put together a hand full of python examples to help get you started. As always feel free to [contact us](https://lob.com/support) directly if you have any questions on implementation.


## /csv_address_verification/

An example showing how to validate and cleanse a CSV spreadsheet full of shipping addresses using Lob's [Address Verifcation API](https://lob.com/verification/address).
9 changes: 9 additions & 0 deletions examples/csv_address_verification/input.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
address1,address2,city,state,postcode
185 Berry St,,San Francisco,CA,94107
1135 burrisville rd,,centreville,MD,21617
2101 Horizon Run,,The Villages,FL,32162
7111 Woodmont Ave,Apt 908,Chevy Chase,MD,20815-6237
8216 Monterra Ranch Cir,Apt 1504,Fort Worth,TX,76177-8540
928b Rodney drive,,Nashville,TN,37205
147 Bokum Rd,,Old Saybrook,CT,06475-1246
111 NotAnAddress,,San Francisco,CA,94107
65 changes: 65 additions & 0 deletions examples/csv_address_verification/verify.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Usage
# python verify.py input.csv

import lob
import csv
import sys

lob.api_key = 'test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc'

skipFirstLine = True

# Column indices in CSV
address1 = 0;
address2 = 1;
city = 2;
state = 3;
postcode = 4;
country = 'US'

try:
sys.argv[1]
except IndexError:
print "Please provide an input CSV file as an argument."
sys.exit()

# Open input files
inputFile = open(sys.argv[1], 'rU')
csvInput = csv.reader(inputFile)

# Create output files
errors = open('errors.csv', 'w')
verified = open('verified.csv', 'w')

# Loop through input CSV rows
for idx, row in enumerate(csvInput):
if skipFirstLine and idx == 0:
continue

# Sanity check
sys.stdout.write('.')
sys.stdout.flush()

try:
verifiedAddress = lob.Verification.create(
address_line1 = row[address1],
address_line2 = row[address2],
address_city = row[city],
address_state = row[state],
address_zip = row[postcode],
address_country = country
)
except Exception, e:
outputRow = ",".join(row) + "," + str(e)+ "\n"
errors.write(outputRow)
else:
outputRow = verifiedAddress.address.address_line1 + ","
outputRow += verifiedAddress.address.address_line2 + ","
outputRow += verifiedAddress.address.address_city + ","
outputRow += verifiedAddress.address.address_state + ","
outputRow += verifiedAddress.address.address_zip + "\n"
verified.write(outputRow)

errors.close()
verified.close()
print "\n"