How to convert raw javascript object to python dictionary?
demjson.decode()
import demjson# fromjs_obj = '{x:1, y:2, z:3}'# topy_obj = demjson.decode(js_obj)
jsonnet.evaluate_snippet()
import json, _jsonnet# fromjs_obj = '{x:1, y:2, z:3}'# topy_obj = json.loads(_jsonnet.evaluate_snippet('snippet', js_obj))
ast.literal_eval()
import ast# fromjs_obj = "{'x':1, 'y':2, 'z':3}"# topy_obj = ast.literal_eval(js_obj)
This will likely not work everywhere, but as a start, here's a simple regex that should convert the keys into quoted strings so you can pass into json.loads. Or is this what you're already doing?
In[70] : quote_keys_regex = r'([\{\s,])(\w+)(:)'In[71] : re.sub(quote_keys_regex, r'\1"\2"\3', js_obj)Out[71]: '{"x":1, "y":2, "z":3}'In[72] : js_obj_2 = '{x:1, y:2, z:{k:3,j:2}}'Int[73]: re.sub(quote_keys_regex, r'\1"\2"\3', js_obj_2)Out[73]: '{"x":1, "y":2, "z":{"k":3,"j":2}}'