k3dict
It provides with several dict operation functions.
k3dict is a component of pykit3 project: a python3 toolkit set.
k3dict
It provides with several dict operation functions.
Status
This library is considered production ready.
Install
pip install k3dict
Synopsis
import k3dict
mydict = {'a':
{'a.a': 'v-a.a',
'a.b': {'a.b.a': 'v-a.b.a'},
'a.c': {'a.c.a': {'a.c.a.a': 'v-a.c.a.a'}}
}
}
# depth-first iterative the dict
for rst in k3dict.depth_iter(mydict):
print(rst)
# output:
# (['a', 'a.c', 'a.c.a', 'a.c.a.a'], 'v-a.c.a.a')
# (['a', 'a.b', 'a.b.a'], 'v-a.b.a')
# (['a', 'a.a'], 'v-a.a')
for rst in k3dict.breadth_iter(mydict):
print(rst)
# output:
# (['a'], {'a.c': {'a.c.a': {'a.c.a.a': 'v-a.c.a.a'}}, 'a.b': {'a.b.a': 'v-a.b.a'}
# , 'a.a': 'v-a.a'})
# (['a', 'a.a'], 'v-a.a')
# (['a', 'a.b'], {'a.b.a': 'v-a.b.a'})
# (['a', 'a.b', 'a.b.a'], 'v-a.b.a')
# (['a', 'a.c'], {'a.c.a': {'a.c.a.a': 'v-a.c.a.a'}})
# (['a', 'a.c', 'a.c.a'], {'a.c.a.a': 'v-a.c.a.a'})
# (['a', 'a.c', 'a.c.a', 'a.c.a.a'], 'v-a.c.a.a')
#
records = [
{"event": 'log in',
"time": {"hour": 10, "minute": 30, }, },
{"event": 'post a blog',
"time": {"hour": 10, "minute": 40, }, },
{"time": {"hour": 11, "minute": 20, }, },
{"event": 'log out',
"time": {"hour": 11, "minute": 20, }, },
]
get_event = k3dict.make_getter('event', default="NOTHING DONE")
get_time = k3dict.make_getter('time.$field')
for record in records:
ev = get_event(record)
tm = "%d:%d" % (get_time(record, {"field": "hour"}),
get_time(record, {"field": "minute"}))
print("{ev:<12} at {tm}".format(ev=ev, tm=tm))
# output:
# log in at 10:30
# post a blog at 10:40
# NOTHING DONE at 11:20
# log out at 11:20
Author
Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Copyright and License
The MIT License (MIT)
Copyright (c) 2015 Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
k3dict-0.1.11.tar.gz
(15.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file k3dict-0.1.11.tar.gz.
File metadata
- Download URL: k3dict-0.1.11.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64ab7a82e95963774edc6e561383cbade5d81f7c0937051d4b539bf44447ebe2
|
|
| MD5 |
2af0762347e4595fb71dc14a140c5efa
|
|
| BLAKE2b-256 |
ba1f244b52f6c83981db3e4dfa9d39c82d3591ddb65904bfce4c7bf005ba84b8
|
File details
Details for the file k3dict-0.1.11-py3-none-any.whl.
File metadata
- Download URL: k3dict-0.1.11-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22d83947309bf91cbc0556499323045e377f63ae658e503110e03448cce05f06
|
|
| MD5 |
ea72ba0d2e5d1454958942d585e393e7
|
|
| BLAKE2b-256 |
cb6bb5388482d6c3089cee4687046b420258a225c252bdcd4f47c918bd933ea2
|