输入:
import gym
env = gym.make("CartPole-v0")
env.reset()
img = env.render(mode='rgb_array', close=True) # Returns None
print(img)
img = env.render(mode='rgb_array', close=False)
# Opens annoying window, but gives me the array that I want
print(img.shape)
需要输出:
{
"Student": {
"name" :"abc",
"id" : 588,
"class : "12"
}
}
答案 0 :(得分:2)
您的输出json无效。 Json对象不能复制密钥。
您可以使用库org.json
并执行以下操作:
JSONObject jsonObject = new JSONObject(inputJson);
JSONObject outputJson = new JSONObject();
JSONArray array = new JSONArray();
for (Object key : jsonObject.keySet()) {
JSONObject item = new JSONObject();
String keyStr = (String)key;
Object keyvalue = jsonObj.get(keyStr);
item.put(keyStr, keyvalue);
array.put(item);
}
outputJson.put("Student", array);
System.out.println(json.toString());
输出:
{
"Student": [
{
"key": "name",
"value": "abc"
},
{
"key": "id",
"value": "588"
},
{
"key": "class",
"value": "12"
}
]
}
答案 1 :(得分:0)
与其他答案类似,所需的输出JSON格式无效。
最接近的有效输出是
{
"Student" : [ {
"key" : "name",
"value" : "abc"
}, {
"key" : "id",
"value" : 588
}, {
"key" : "class",
"value" : "12"
} ]
}
这可以通过Jolt生成,具有以下规范
[
{
"operation": "shift",
"spec": {
"Student": {
"name": {
"$": "Student[0].key",
"@": "Student[0].value"
},
"id": {
"$": "Student[1].key",
"@": "Student[1].value"
},
"class": {
"$": "Student[2].key",
"@": "Student[2].value"
}
}
}
}
]
答案 2 :(得分:0)
如果我们假设像其他受访者一样,通过键/值对象的数组来使输出成为有效的JSON,则使用JSLT很容易解决。
array
函数将一个对象完全按照您的要求转换为键/值对象的数组,因此变换变为:
{"Student" : array(.Student)}