Code Monkey home page Code Monkey logo

jsonstat.py's Introduction

jsonstat.py

image

Documentation Status

image

image

jsonstat.py is a library for reading the JSON-stat data format maintained and promoted by Xavier Badosa. The JSON-stat format is a JSON format for publishing dataset. JSON-stat is used by several institutions to publish statistical data. An incomplete list is:

jsonstat.py library tries to mimic as much is possible in python the json-stat Javascript Toolkit. One of the library objectives is to be helpful in exploring dataset using jupyter (ipython) notebooks.

For a fast overview of the feature you can start from this example notebook oecd-canada-jsonstat_v1.html You can also check out some of the jupyter example notebook from the example directory on github or from the documentation

As bonus jsonstat.py contains an useful classes to explore dataset published by Istat.

You can find useful another python library pyjstat by Miguel Expósito Martín concerning json-stat format.

This library is in beta status. I am actively working on it and hope to improve this project. For every comment feel free to contact me [email protected]

You can find source at github , where you can open a ticket, if you wish.

You can find the generated documentation at readthedocs.

Installation

Pip will install all required dependencies. For installation:

pip install jsonstat.py

Usage

Simple Usage

There is a simple command line interface, so you can experiment to parse jsonstat file without write code:

# parsing collection
$ jsonstat info --cache_dir /tmp http://json-stat.org/samples/oecd-canada.json
downloaded file(s) are stored into '/tmp'
download 'http://json-stat.org/samples/oecd-canada.json'
Jsonsta    tCollection contains the following JsonStatDataSet:
+-----+----------+
| pos | dataset  |
+-----+----------+
| 0   | 'oecd'   |
| 1   | 'canada' |
+-----+----------+

# parsing dataset
$ jsonstat info --cache_dir /tmp  "http://ec.europa.eu/eurostat/wdds/rest/data/v2.1/json/en/tesem120?sex=T&precision=1&age=TOTAL&s_adj=NSA"
downloaded file(s) are stored into '/tmp'
download 'http://ec.europa.eu/eurostat/wdds/rest/data/v2.1/json/en/tesem120?sex=T&precision=1&age=TOTAL&s_adj=NSA'
name:   'Unemployment rate'
label:  'Unemployment rate'
size: 467
+-----+-------+-------+------+------+
| pos | id    | label | size | role |
+-----+-------+-------+------+------+
| 0   | s_adj | s_adj | 1    |      |
| 1   | age   | age   | 1    |      |
| 2   | sex   | sex   | 1    |      |
| 3   | geo   | geo   | 39   |      |
| 4   | time  | time  | 12   |      |
+-----+-------+-------+------+------+

code example:

url = 'http://json-stat.org/samples/oecd-canada.json'
collection = jsonstat.from_url(url)

# print list of dataset contained into the collection
print(collection)

# select the first dataset of the collection and print a short description
oecd = collection.dataset(0)
print(oecd)

# print description about each dimension of the dataset
for d in oecd.dimensions():
    print(d)

# print a datapoint contained into the dataset
print(oecd.value(area='IT', year='2012'))

# convert a dataset in pandas dataframe
df = oecd.to_data_frame('year')

For more python script examples see examples directory.

For jupyter (ipython) notebooks see examples-notebooks directory.

Support

This is an open source project, maintained in my spare time. Maybe a particular features or functions that you would like are missing. But things don’t have to stay that way: you can contribute the project development yourself. Or notify me and ask to implement it.

Bug reports and feature requests should be submitted using the github issue tracker. Please provide a full traceback of any error you see and if possible a sample file. If you are unable to make a file publicly available then contact me at [email protected].

You can find support also on the google group.

How to Contribute Code

Any help will be greatly appreciated, just follow those steps:

  1. Fork it. Start a new fork for each independent feature, don’t try to fix all problems at the same time, it’s easier for those who will review and merge your changes.
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Write your code. Add unit tests for your changes! If you added a whole new feature, or just improved something, you can be proud of it, so add yourself to the AUTHORS file :-) Update the docs!
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request. Click on the large "pull request" button on your repository. Wait for your code to be reviewed, and, if you followed all theses steps, merged into the main repository.

License

jsonstat.py is provided under the LGPL license. See LICENSE file.

jsonstat.py's People

Contributors

26fe avatar bencekd avatar soyjuanmedina avatar oskarnyqvist avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.