跳至主要内容

Working with case insensitive Json in python

We want the json keys to be case-insensitive

Okay, I hope this is not your case, as it is too weird to work this way.

But If you have to. Or, If you must to.

Solution is to: Just working in a specific case, upper or lower, and blindly convert all data to that case.

To do this in Python, when you load a JSON file/string you can define a hook named object_pairs_hook as below:

import pathlib

my_file = pathlib.Path.cwd().join('my_example.json')

def lower_case_keys(tuple_list):
    return dict([(k.lower(), v) for k, v in tuple_list])

json.loads(my_file.read_text(encoding='UTF-8'), object_pairs_hook=lower_case_keys)

From here on, all your json operation should be using lower-cased keys.

评论

此博客中的热门博文

XEmacs 21.5 beta 35 "kohlrabi" has been released.

If you are an old XEmacs user, you may feel happy to see this from https://www.xemacs.org/.    After ten years, XEmacs released a new version 21.5. So there's still many people cares about XEmacs. The XEmacs' source repo have been moved from altassian Bitbucket to https://heptapod.net/. As Bitbucket have been dropped Mercurial support many years ago.

Fido-mode

Today, I've just discovered the Fido mode, a modified `icomplete` minor mode. `icomplete` used to be one of my favorite mode days back to my XEmacs days. Pros: It is way fast. It is much more smart in terms of find the complete candidate that you want mostly.  Cons: It does not integrate well enough with tramp yet.    `fido-mode` is a core package of Emacs 27+, and there's a vertical version available after Emacs 28+ named `fido-vertical-mode`. UPDATE: I am back with ido now