I am working with a system that unfortunately; uses nested json objects with the same key name. Based on some input data based on 0 to n elements I need to create this object dynamically but not sure how to do this with python correctly.
Here is what my json looks like in this example there are 3 expressions..
{
"metricExpressionTemplate": {
"metricExpressionType": "Boolean",
"operator": {
"type": "PLUS"
},
"expression1": {
"metricExpressionType": "Boolean",
"operator": {
"type": "PLUS"
},
"expression1": {
"metricExpressionType": "Boolean",
"operator": {
"type": "PLUS"
},
"expression1": {
"metricExpressionType": "Boolean",
"operator": {
"type": "PLUS"
}
}
}
}
}
}
I've been trying to dynamically create this but even when I try to add it manually..
import json
expression_object = {}
template_object = {
"metricExpressionType": "Boolean",
"operator": {
"type": "PLUS"
},
}
expression_object["metricExpressionTemplate"]["expression1"] = template_object
expression_object["metricExpressionTemplate"]["expression1"]["expression1"] = template_object
print(json.dumps(expression_object))
I get an error saying "ValueError: Circular reference detected".
Now even if this did work imagine having to do this for 250 objects! In some type of for loop..
for i in range(0,200):
# Add Expression objects dynamically..
expression_object["metricExpressionType"]["expression1"] = template_object
There's no "get_json_root" or "append" method on a dict object that I am aware of. How the heck would I do this?