Attribute dictionary implementation that allow get access to their elements by keys (as native dict) and attributes.
Installation:
pip install attrd
Usage:
from attrd import AttrDict
a = AttrDict(key1=123)
# Set value by attribute
a.key2 = 123
# Set value by key
a['key3'] = 123
# Set and delete value by attribute
a.key4 = 123
del a.key4
# Set and delete value by key
a['key5'] = 123
del a['key5']
print(a) # -> {'key1': 123, 'key2': 123, 'key3': 123}
Convert existed dict to AttrDict:
print(AttrDict({'key1': 123, 'key2': 123})) # -> {'key1': 123, 'key2': 123}
print(AttrDict(**{'key1': 123, 'key2': 123})) # -> {'key1': 123, 'key2': 123}
Nested level:
d = {
'key1': {
'sub_key1': 123,
'sub_key2': {
'deep_key': 'abc'
}
}
}
d = AttrDict(d)
d.key1.sub_key3 = 123
print(d.key1) # -> {'sub_key1': 123, 'sub_key2': {'deep_key': 'abc'}, 'sub_key3': 123}
print(d.key1.sub_key1) # -> 123
print(d.key1.sub_key2.deep_key) # -> abc
del d.key1.sub_key2
print(d) # -> {'key1': {'sub_key1': 123, 'sub_key3': 123}}
Nested values with kwargs:
d = AttrDict(key1={'sub_key1': 123, 'sub_key2': 123})
print(d) # -> {'key1': {'sub_key1': 123, 'sub_key2': 123}}
print(d.key1.sub_key1) # -> 123
del d.key1.sub_key2
print(d) # -> {'key1': {'sub_key1': 123}}
Dicts in lists:
d = AttrDict({
'key1': [
{'sub_key1': 123, 'sub_key2': 456},
{'sub_key1': 123, 'sub_key2': 456},
]
})
del d.key1[0].sub_key2, d.key1[1].sub_key1
print(d) # -> {'key1': [{'sub_key1': 123}, {'sub_key2': 456}]}
print(d.key1[0].sub_key1) # -> 123
Iterate items:
g = AttrDict(a=1, b=2, c=3, items=[10, 11, 12])
print(g.items) # -> <built-in method items of AttrDict>
print(g.get('items')) # -> [10, 11, 12]
for k, v in g.items():
print(k, v)
# a 1
# b 2
# c 3
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
attrd-0.0.4.tar.gz
(3.0 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
attrd-0.0.4-py3-none-any.whl
(2.9 kB
view details)
File details
Details for the file attrd-0.0.4.tar.gz.
File metadata
- Download URL: attrd-0.0.4.tar.gz
- Upload date:
- Size: 3.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
696921c5e5804852e5958681eaffbcae38abc1ccecd0ffdec0bdfeaed9e47e6b
|
|
| MD5 |
147f1ec609b6f55d87c708eb48f3efda
|
|
| BLAKE2b-256 |
ea0abd435bf67280f57af9033a52d4c9aca11bf32857aeb7a454e02b3a68d717
|
File details
Details for the file attrd-0.0.4-py3-none-any.whl.
File metadata
- Download URL: attrd-0.0.4-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f35f6d2f66fd6d6abd7928873036bcff03b32eca50405d6930e9daa22416320e
|
|
| MD5 |
fed90cb339d31703f79533ba4724cda4
|
|
| BLAKE2b-256 |
40cbb4d4dfb0b7f5dafde8f7a58f222d31a0d412a9e026361c0a83c9ecfce6dd
|