[
{
TID : "t-0_login_sucess"
Test :
[
{SetValue : { uname : "Zorg", pass : "Rules"} },
{DoAction : "login"},
{CheckResult: [0, LOGGED_IN]}
]
},
{ TID : "t-1_login_failure", Test : [ {SetValue :
{ uname : "11", pass : "im2happy78"} },
{DoAction : "login"}, {CheckResult: [-1000, LOGGED_OUT]} ] }
]
import re, json, os
json_file = os.path.join(
os.path.dirname(__file__),
'very_bad.json'
)
with open(json_file, 'r') as fh:
bad_json = fh.read()
#print(bad_json)
improved_json = re.sub(r'"\s*$', '",', bad_json, flags=re.MULTILINE)
#print(improved_json)
# good_json = re.sub(r'(?<!")(?P<word>[\w-]+)\b(?!")', '"\g<word>"',
# improved_json)
# good_json = re.sub(r'(?<[\{\s])(?P<word>[\w-]+)(?=[:\s])', '"\g<word>"',
# improved_json)
# good_json = re.sub(r'([\{\[\s])(?P<word>[\w-]+)([:,\]\s])', '\1"\g<word>"\3',
# improved_json)
good_json = re.sub(r'(?<=[\{\[\s])(?P<word>[\w-]+)(?=[:,\]\s])', '"\g<word>"',
improved_json)
#print(good_json)
# with open('out.js', 'w') as fh:
# fh.write(good_json)
data = json.loads(good_json)
print(data)