Files
CoolProp/dev/mixtures/JSON_to_C++.py
2014-05-14 12:46:24 +02:00

32 lines
1.2 KiB
Python

import json as pyjson
values = [
('mixture_excess_term.json','../../CoolProp/mixture_excess_JSON.h','mixture_excess_JSON'),
('mixture_reducing_parameters.json','../../CoolProp/mixture_reducing_JSON.h','mixture_reducing_JSON')
]
for infile,outfile,variable in values:
# Check you haven't messed up the JSON file and it will still load
pyjson.loads(open(infile,'r').read())
json = open(infile,'r').read()
# Escape all existing quotations
json = json.replace('"','\\"')
# Split into lines
json = json.split('\n')
# Add " to beginning and end of every line and end line with comma
for i,line in enumerate(json):
json[i] = '"'+line+'",'
# Back together
json = '\n'.join(json)
# Header/footer
json = '// File generated by the script dev/mixtures/JSON_to_C++.py\n\n// C array of std::string lines\nstd::string '+variable+'_c_lines[] = {"",\n' + json + '};'+'\n\n// Combined into a single std::string \nstd::vector<std::string> '+variable+'_lines('+variable+'_c_lines, '+variable+'_c_lines + sizeof('+variable+'_c_lines) / sizeof(std::string)); \n\nstd::string '+variable+' = strjoin('+variable+'_lines,"");'
f = open(outfile,'w')
print>>f, json