Access and manipulate dictionaries and JSON files.
Project description
arkivist
Access and manipulate dictionaries and JSON files.
Import
from arkivist.arkivist import update, read
Usage
1. Reading from JSON file
people = read("people.json")
2. Updating JSON file
people = read("people.json")
# item 1
person = {}
person.update({"name": "Abc Xyz"})
person.update({"age": 12})
people.update({"abcxyz": person})
# item 2
person = {}
person.update({"name": "Lmn Opq"})
person.update({"age": 15})
people.update({"lmnopq": person})
# basic usage
update("people.json", people)
# adjust indent
update("people.json", people, indent=3)
# sort and reverse order
update("people.json", people, sort=True, reverse=True)
3a. Arkivist class, show variations
from arkivist import Arkivist
people = Arkivist("test.json")
person = {}
person.update({"name": "Juan"})
people.set({"juan": person})
print("Show all items (unsorted):\t", people.show())
print("Show all items (sorted):\t", people.show(sort=True))
print("Show all items (reverse):\t", people.show(sort=True, reverse=True))
3b. Arkivist class, manual save and search
from arkivist import Arkivist
## autosave = False
people = Arkivist("test.json", autosave=False)
person = {}
person.update({"name": "Maria"})
people.set({"maria": person})
# manual saving
people.save()
# save to another file
people.save(filepath="test.backup.json")
# search in dictionary
maria = people.search("maria", fallback="")
print("Search for Maria:\t\t", maria)
4. Replace and clear dictionary
from arkivist import Arkivist
people = Arkivist("test.json", autosave=False)
# print the number of entries
print("Count:\t\t", people.count())
5. Get the keys and the values
from arkivist import Arkivist
people = Arkivist("test.json", autosave=False)
# get the keys and values
print("Keys:\t\t", people.keys())
print("Values:\t\t", people.values())
6. Invert the dictionary
from arkivist import Arkivist
simple = Arkivist("test.simple.json")
simple.clear()
simple.set({0: "a"})
simple.set({1: "b"})
simple.set({2: "c"})
print("Normal:\t", simple.show())
# inverts the dictionary
# keys and values must be hashable
simple.invert()
print("Invert:\t", simple.show())
7. Replace and clear dictionary
from arkivist import Arkivist
people = Arkivist("test.json", autosave=False)
# print original contents
print("Old:\t\t", people.show())
# print new contents
alien = {"anon": {"name": "Anon"}}
people.replace(alien)
print("New:\t\t", people.show())
# print empty dictionary
people.clear()
print("Clear:\t\t", people.show())
7. Load new dictionary or JSON String
## Example #8
print("\nTest #8")
from arkivist import Arkivist
people = Arkivist("test.json")
# valid dictionary
people.load({"ufo": {"name": "UFO"}})
print("Valid Input: ", people.show())
# valid string
people.load('{"dog": {"name": "Doggy"}}')
print("Valid Input: ", people.show())
# flush invalid input
people.load(1234)
print("Invalid Input: ", people.show())
7. Flatten any nested dictionary
## Example #9
print("\nTest #9")
from arkivist import Arkivist
people = Arkivist("test.json")
# flattens nested dictionary
people.set({"dog": {"name": "Doggy"}})
people.set({"ufo": {"name": "UFO"}})
print("Flatten: ", people.flatten().show())
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
arkivist-1.0.11.tar.gz
(4.6 kB
view hashes)
Built Distribution
Close
Hashes for arkivist-1.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d083f1243c1b60dc64872a0370a6856bf3f1088a77c9a29ba1f44ae86f3e609 |
|
MD5 | 16d99d3aec80696d755659f5611d8139 |
|
BLAKE2b-256 | 657a0415f27f9e787e4f2e00cfe1cfc0980255a02e34a5de376545b9cddd0f06 |