Files
CoolProp/dev/mixtures/JSON_to_C++.py
2019-01-12 20:48:56 -07:00

33 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(json, file=f)