In order to load
This will keep the default config_files list intact, but use .json instead of .conf for the files it looks for.
#python #cement #json #config
json
config file in Cement
python framework, you simply need to include the json extension, and then set the CementApp.Meta.config_handler
to json
:from cement.core.foundation import CementApp
class MyApp(CementApp):
class Meta:
label = 'myapp'
extensions = ['json']
config_handler = 'json'
config_extension = '.json'
This will keep the default config_files list intact, but use .json instead of .conf for the files it looks for.
#python #cement #json #config
If you use
You can do more and sort json keys! To do that pass
#python #json #dumps #indent #sort #sort_keys
json.dumps()
in order to write a json into a file, it will be wriiten all in one line. You can do more with dumps()
. You can pretty print into the file with indentation using indent
parameter:dumped_json = json.dumps(json.loads(content), indent=4)
You can do more and sort json keys! To do that pass
sort_keys
to dumps
function like below:dumped_json = json.dumps(json.loads(content), indent=4, sort_keys=True)
#python #json #dumps #indent #sort #sort_keys
As an alternative to the
#python #pprint #json #dumps
pprint
module:# The standard string repr for dicts is hard to read:
>>> my_mapping = {'a': 23, 'b': 42, 'c': 0xc0ffee}
>>> my_mapping
{'b': 42, 'c': 12648430. 'a': 23} # 😞
# The "json" module can do a much better job:
>>> import json
>>> print(json.dumps(my_mapping, indent=4, sort_keys=True))
{
"a": 23,
"b": 42,
"c": 12648430
}
# Note this only works with dicts containing
# primitive types (check out the "pprint" module):
>>> json.dumps({all: 'yup'})
TypeError: keys must be a string
#python #pprint #json #dumps
Did you know you can use jsonSchema in MongoDB to search for documents?
Let's say you have
Now let's say you want to find all documents that has a customer_id of type
In Mongo shell:
This schema says look for documents that have
Interesting, right? :)
#database #mongodb #jsonSchema #json_schema
Let's say you have
users
collection with data below:{ "_id" : ObjectId("5f64bd1eca8806f2c04fcbe3"), "customer_id" : 100, "username" : "john" }
{ "_id" : ObjectId("5f64bd1eca8806f2c04fcbe5"), "customer_id" : 206, "username" : "new_customer" }
{ "_id" : ObjectId("60420df441558d6671cf54f2"), "customer_id" : "123", "username" : "Ali" }
Now let's say you want to find all documents that has a customer_id of type
string
instead of int
.In Mongo shell:
let ms = {required: ["customer_id"], properties: {customer_id: {bsonType: "string"}}}
This schema says look for documents that have
customer_id
field with string
type. To search:> db.customers.find({$jsonSchema: ms})
{ "_id" : ObjectId("60420df441558d6671cf54f2"), "customer_id" : "123", "username" : "Ali" }
Interesting, right? :)
#database #mongodb #jsonSchema #json_schema