Making Python's `dict` easier to work with by adding object notation and grouping
Project description
EZDict
Making Python's dict
easier to work with by adding object notation and grouping.
- Allows keys to be accessed as attributes, so
ezdict.attr
can be used instead ofezdict["attr"]
. Note, this only works with string keys. Additionally, any keys that overlap with method names will be shadowed, so to access the keykeys
, useezdict["keys"]
instead ofezdict.keys
. - Provide two methods,
incrementer
andappender
, to support the common operations of counting the occurrences of a key and grouping values by a key, respectively.
Installation
pip install ezdict
Import
from ezdict import EZDict
Usage
Accessing Keys as Attributes
from ezdict import EZDict
ez = EZDict({
"id": "5e2797c05aa0585816ce8b8c",
"title": "EZDict",
"description": "Super cool Python package",
"author": "Jacob Morris (BlendingJake)",
"meta": {
"created": "March 27th, 2020"
}
})
print(ez.title) # >>> "EZDict"
print(ez.meta.created) # >>> "March 27th, 2020"
Grouping/Counting Like a Pro
from ezdict import EZDict
# tried of this?
iterable = [ ... ]
grouped = {}
for item in iterable:
if item["key"] in grouped:
grouped[item["key"]] += 1
# OR grouped[item["key"]].append(item)
else:
grouped[item["key"]] = 1
# OR grouped[item["key"]] = [item]
# do this instead
iterable = [ ... ]
grouped = EZDict()
for item in iterable:
grouped.incrementer(item["key"])
# OR grouped.appender(item["key"], item)
incrementer(key, increment=1)
Increment
key
byincrement
if the key has already been seen. Otherwise, set the key equal toincrement
.
appender(key, value)
Append
value
to the list of values associated withkey
if that key was already been seen. Otherwise, set the key equal to[value]
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ezdict-1.0.0.tar.gz
(2.9 kB
view details)
Built Distribution
ezdict-1.0.0-py3-none-any.whl
(15.7 kB
view details)
File details
Details for the file ezdict-1.0.0.tar.gz
.
File metadata
- Download URL: ezdict-1.0.0.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98f5574c2b82108d9bb8852724d6d4188e2670e0857628f523b6c267480b3e1d |
|
MD5 | 59324143c4564a78bbb3967a2d0fb5eb |
|
BLAKE2b-256 | d686aef76cb5409fc47324b5fc9cbab748a3b00b3abba4af9d5c932d27738698 |
File details
Details for the file ezdict-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: ezdict-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34e92c3cd28143251ab767d5a02b6cd1fb2d2133b7effa603a0941c705367c09 |
|
MD5 | f7ede3b0ce941b1a9ed6dd4657a998b2 |
|
BLAKE2b-256 | 35777efaa4fb3d488c164e14ed8f9ba0bb7a3cc00f4d823d141a9d1d59f106aa |