Python Musings #7: Simulating FSAs in lieu of real postal code data.

This article was first published on Python Musings – bensstats , and kindly contributed to python-bloggers. (You can report issue about the content on this page here)
Want to share your content on python-bloggers? click here.

Disclaimer

The following is the same content that I have posted in my other blog on this topic in R, but written in Python. While I actually first wrote the code for doing this in Python, I’ll be posting the similar verbiage from that blog here.

Introduction

Often when scraping data, websites will ask a user to enter a postal code to get the locations near it. If you are interested in collecting data on locations in Canada for an entire Province or the entire province from a site, it might be hard to find a list of all postal codes or FSAs in Canada or in a given province which is easy to use. Information on how FSAs work can be found here.

In this blog, I’m going to share a brief snippet of code that you can use to generate Canadian FSAs. While some FSAs generated may not actually exist, if we follow the rules about Canadian postal codes, it serves as a good substitute in lieu of an actual list.

The Code

is essentially 3 nested for-loops. While many programmers would not advise writing nested for-loops, I find that for this case it is easier to understand and write.

import string

fsa_list =[]

alphabet = list(string.ascii_uppercase)

province_alphabet = ["A","B","C","E","G","H","J","K","L","M","N","P","R","S","T","V","X","Y"]


nonLetters=["D", "F", "I", "O", "Q", "U"]

second_letter= list(set(string.ascii_uppercase)-set(nonLetters))

for letter1 in province_alphabet:
    for number in [0,1,2,3,4,5,6,7,8,9]:
        for letter2 in alphabet:
            fsa_list.append(letter1+str(number)+letter2)

We now have our simulated FSAs!

import random

random.sample(fsa_list,10)

['A0I', 'S7H', 'R5O', 'V4T', 'R9G', 'B6W', 'T6D', 'B9O', 'M0B', 'Y7H']

Want to see more of my content?

Be sure to subscribe and never miss an update!







To leave a comment for the author, please follow the link and comment on their blog: Python Musings – bensstats .

Want to share your content on python-bloggers? click here.