Swiss zipcodes database
This library provides an easy way to look up a swiss zipcode and get its canton or municipality. Use it like this:
>>> from zipch import ZipcodesDatabase
>>> zd = ZipcodesDatabase('/tmp/zipcodes')
>>> zd.get_location(1003)
Location(official_name='Lausanne', canton='VD', municipality='Lausanne', coordinates=Lv95Coordinates(E=Decimal('2537956.3654948957'), N=Decimal('1152398.7080000006')))
Installation
Zipch has been tested on Python 3.7+. The easiest way to install it is by using PyPI:
pip install zipch
Usage
Start by creating a ZipcodesDatabase object. In the example below,
/tmp/zipcodes is a file that will be used as the zipcodes database. If the
file doesn't exist yet, it will be created by downloading the latest version of
the zipcodes database.
>>> from zipch import ZipcodesDatabase
>>> zd = ZipcodesDatabase('/tmp/zipcodes')
You can then get all the zipcodes registered in the database as a {zipcode: location} dict:
>>> zd.get_locations()
{8192: Location(official_name='Zweidlen', canton='ZH', municipality='Glattfelden'), 8193: Location(official_name='Eglisa', canton='ZH', municipality='Eglisa'), ...}
The library packs with some utility functions, these are all things that can
be derived from get_locations() but that are here for convenience:
>>> zd.get_location(1003)
Location(official_name='Lausanne', canton='VD', municipality='Lausanne', coordinates=Lv95Coordinates(E=Decimal('2537956.3654948957'), N=Decimal('1152398.7080000006')))
>>> zd.get_zipcodes_for_municipality('Lausanne')
[1000, 1003, 1004, 1005, 1007, 1010, 1011, 1018, 1012]
>>> zd.get_zipcodes_for_canton('VD')
[1412, 1428, 1430, 1441, 1450, 1114, 1000, 1003, ...]
>>> zd.get_cantons()
['AG', 'AI', 'AR', 'BE', 'BL', 'BS', ...]
>>> zd.get_municipalities()
['Aadorf', 'Aara', 'Aarberg', 'Aarburg', 'Aarwangen', ...]
Geolocation
Location objects also have a coordinates attribute, which contains the
coordinates in LV95
format.
You can use the lv95_to_wgs84 function to convert these coordinates to regular WGS84 longitude & latitude coordinates:
>>> from zipch import ZipcodesDatabase, lv95_to_wgs84
>>> lv95_to_wgs84(ZipcodesDatabase("/tmp/zipcodes").get_location(1003).coordinates)
Coordinates in regular WGS84 format are available in the wgs84_coordinates
attribute.
Metadata
Release files for zipch 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zipch-2.0.1.tar.gz | 5.2 kB | Without provenance | Details for zipch-2.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| zipch-2.0.1-py3-none-any.whl | Python 3 | none | any | Details for zipch-2.0.1-py3-none-any.whl |
Total release size: 11.0 kB
Release files / zipch-2.0.1.tar.gz
| Download URL | zipch-2.0.1.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4fe89b79727f533a7687aa840a8717ac466fda7c6b18b7aeeeda55069229f43d
|
|
BLAKE2b-256 checksum How to use checksums |
5c43e8845f355d3ae762e0cc50893d7d9dae6ac568684d85376c53418c8b2606
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.9
|
Release files / zipch-2.0.1-py3-none-any.whl
| Download URL | zipch-2.0.1-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
650218e905ebe7ce1633f90e9dd95db2bcabe787b01bec4ff37d3a4e13881f9b
|
|
BLAKE2b-256 checksum How to use checksums |
abd1ec514e5d7b726b773fdfe6e188afd5d024a30f47691d23c1e6a7a8f2b9c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.9
|
Security for zipch 2.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.