Skip to main content

Make accessing JSON like data more convenient.

Project description

# Objectify JSON

Make accessing JSON like data more convenient.

## Features

  • Access dict value via dot . (data.a.b.c).

  • Always return ObjectifyJSON type, which holds the data with type of dict, list or any other primitive types.

  • Use x._data to get the real data.

  • Always return ObjectifyJSON(None) if doesn’t exist.

  • An CLI tool named object to process JSON data.

## Install

` pip3 install objectify-json `

## Example

See test.py

## Functions to process data in batch

  • The return value is always ObjectifyJOSN too!

  • The return value of lambda funtions will always be unwrapped to primitive types.

  • Most of the fn_* functions accept optional unwrap parameter to enable passing the underlying value as primitive types to lambda. Default is False.

  • When used in CLI tool, if it failed getting the property by property name, e.g. map, it will retry to get function with prefix fn_ added to the name. This will simplify writting the CLI command.

### Common

Following methods of ObjectifyJOSN accept optional unwrap to unwrap ObjectifyJOSN data to the underlying built-in data, the default value is False.

  • fn_map(fn, unwrap=False): map on the iterator

  • fn_reduce(fn, initializer=None, unwrap=False): reduce on the iterator, lambda as the first positional parameter, optional initializer parameter will be passed to built-in reduce.

  • fn_lambda(fn, unwrap=False): value in-and-out

  • fn_filter(fn, unwrap=False): filter on the iterator

### Dict

  • fn_keys(): Return keys as list.

  • fn_values(): Return values as list.

  • fn_items(): Return items as list. Element has the type tuple, e.g. (“key”, “value”).

  • fn_include_keys(keys): Filter dict. Keep the keys you give.

  • fn_exclude_keys(keys): Filter dict. Remove the keys you give.

  • fn_filter_by_value(fn): Filter dict. Filter by the lambda you give, which accept the value of dict item.

  • fn_filter_by_kv(fn): Filter dict. Filter by the lambda you give, which accept key and value two variables.

  • fn_update(key, fn, unwrap=False): Update dict value. The lambda you give accept the origin value and return a new value.

  • fn_items_update(fn, unwrap=False): Update dict value. The lambda you give accept key and value two variables and return a new value.

  • fn_rename(mapping): Update dict key. The mapping is a list of two-elements list.

### List

  • fn_sort(fn): Sort the list in place. The lambda you give will be passed as key argument to the sort method of list.

  • fn_dedup(fn=None, all=True): Dedup the elements in list. If all if False, the duplication will checked by comparing current value between last value, else will compare to all appeared before.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

objectify_json-0.2.15-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file objectify_json-0.2.15-py3-none-any.whl.

File metadata

  • Download URL: objectify_json-0.2.15-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.1

File hashes

Hashes for objectify_json-0.2.15-py3-none-any.whl
Algorithm Hash digest
SHA256 3c79786c0da94893383b8993ea4f028badb6d515b8816a94e7e7cbff801e0435
MD5 60fff051a575e55b5d7f73321e48b768
BLAKE2b-256 90ad0aed622521360feef318bbb9723f8a9b21a748fe34747403d8b7b6b35430

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page