Python における JSON の読込み、シングルクォート

Python で、import json を使った、json.loadsJSON読込みは、
キーが、シングルクォートで括られていてはダメだ。ダブルクォートでないとならない。
これは、非常に不便だ。
JavaGoogle GSON は、シングルクォートだろうが解釈してくれる。

以下は、ダメ!

import json
dict = json.loads("{ 'a':10, 'b':'ABC' , 'c':{ 'd':'abc' } }")

ダブルクォートで括られてないとならない。

import json
dict = json.loads('{ "a":10, "b":"ABC", "c":{ "d":"abc"  } }')

しかし、抽象構文木 (Abstract Syntax Tree) ast のヘルパー関数 literal_eval
使用すれば、シングルクォートでも読み込める

import ast
dict = ast.literal_eval("{ 'a':10, 'b':'ABC' , 'c':{ 'd':'abc' } }")

抽象構文木
32.2. ast — 抽象構文木 — Python 3.6.5 ドキュメント

抽象構文木