如何使用Python或Java将CSV转换为JSON。csv是嵌套JSON的表示(包含JSON对象和嵌套对象的数组)
我得到的csv文件如下: 属性1_x,属性1_y,属性1_z_0_p,属性1_z_0_c,属性1_z_1_p,属性1_z_1_c,属性2_R,属性2_K,属性3 1100200500600222320,你好如何使用Python或Java将CSV转换为JSON。csv是嵌套JSON的表示(包含JSON对象和嵌套对象的数组),java,python,json,csv,Java,Python,Json,Csv,我得到的csv文件如下: 属性1_x,属性1_y,属性1_z_0_p,属性1_z_0_c,属性1_z_1_p,属性1_z_1_c,属性2_R,属性2_K,属性3 1100200500600222320,你好 csv表示如下所示的json 基本上这里我得到了上面的CSV,需要将其转换为所示的JSON结构 。不知道怎么做。是否有任何库(Python/Java)可以帮助我解决这个问题 如果有任何具有不同csv标题的解决方案/建议可用,也可以使用。我可以要求团队为我提供具有不同标题名称的csv,以
csv表示如下所示的json
基本上这里我得到了上面的CSV,需要将其转换为所示的JSON结构 。不知道怎么做。是否有任何库(Python/Java)可以帮助我解决这个问题 如果有任何具有不同csv标题的解决方案/建议可用,也可以使用。我可以要求团队为我提供具有不同标题名称的csv,以表示嵌套/数组
JSONObject jsonObject = new JSONObject("{
"attrib1":{
"x":1,
"y":2,
"z":[{"p":100,"c":200},{"p":500,"c":600}]
},
"attrib2":{"R":222,"K":320},
"attrib3":"hello"
}");
试试看。
这可能会有帮助
试试看。
它可能会有帮助首先迭代
键
,然后类似地迭代值
,并保存到csv中
String eol = System.getProperty("line.separator");
try(Writer writer = new FileWriter("C:\\Users\\m.hussain\\Desktop\\CSV\\testing.csv"))
{
for (Map<String, Object> map : objectRecords)
{
for (Map.Entry<String, Object> entry : map.entrySet())
{
writer.append(entry.getKey())
.append(',');
}
break;
}
writer.append(eol);
for (Map<String, Object> map : objectRecords)
{
for (Map.Entry<String, Object> entry : map.entrySet())
{
JSONObject jsonObject;
try
{
jsonObject = new JSONObject(String.valueOf(entry.getValue()));
writer.append(jsonObject.getString("value"));
}
catch (Exception e)
{
writer.append(String.valueOf(entry.getValue()));
}
writer.append(',');
}
writer.append(eol);
}
String eol=System.getProperty(“line.separator”);
尝试(Writer Writer=newfilewriter(“C:\\Users\\m.hussain\\Desktop\\CSV\\testing.CSV”))
{
for(映射:objectRecords)
{
对于(Map.Entry:Map.entrySet())
{
writer.append(entry.getKey())
.append(',');
}
打破
}
writer.append(eol);
for(映射:objectRecords)
{
对于(Map.Entry:Map.entrySet())
{
JSONObject JSONObject;
尝试
{
jsonObject=newJSONObject(String.valueOf(entry.getValue());
append(jsonObject.getString(“value”);
}
捕获(例外e)
{
writer.append(String.valueOf(entry.getValue());
}
writer.append(',');
}
writer.append(eol);
}
首先迭代键
,然后同样迭代值
并保存到csv中
String eol = System.getProperty("line.separator");
try(Writer writer = new FileWriter("C:\\Users\\m.hussain\\Desktop\\CSV\\testing.csv"))
{
for (Map<String, Object> map : objectRecords)
{
for (Map.Entry<String, Object> entry : map.entrySet())
{
writer.append(entry.getKey())
.append(',');
}
break;
}
writer.append(eol);
for (Map<String, Object> map : objectRecords)
{
for (Map.Entry<String, Object> entry : map.entrySet())
{
JSONObject jsonObject;
try
{
jsonObject = new JSONObject(String.valueOf(entry.getValue()));
writer.append(jsonObject.getString("value"));
}
catch (Exception e)
{
writer.append(String.valueOf(entry.getValue()));
}
writer.append(',');
}
writer.append(eol);
}
String eol=System.getProperty(“line.separator”);
尝试(Writer Writer=newfilewriter(“C:\\Users\\m.hussain\\Desktop\\CSV\\testing.CSV”))
{
for(映射:objectRecords)
{
对于(Map.Entry:Map.entrySet())
{
writer.append(entry.getKey())
.append(',');
}
打破
}
writer.append(eol);
for(映射:objectRecords)
{
对于(Map.Entry:Map.entrySet())
{
JSONObject JSONObject;
尝试
{
jsonObject=newJSONObject(String.valueOf(entry.getValue());
append(jsonObject.getString(“value”);
}
捕获(例外e)
{
writer.append(String.valueOf(entry.getValue());
}
writer.append(',');
}
writer.append(eol);
}
您知道要构建的对象的结构吗,还是需要从标题中提取该结构?无论如何,我认为没有用于该结构的库,但通过逐行解析文件来构建每个对象应该很容易。您知道要构建的对象的结构还是需要从标题中提取该结构?在在任何情况下,我都不认为它有一个库,但是逐行构建解析文件的每个对象应该很容易{“x”:1,“y”:2,“z”:[{“p”:100,“c”:200},{“p”:500,“c”:600}]},{“attrib2”:{“R”:222,“K”:320},“attrib3”:“hello”}对于键,myDct中的值。items():打印(键,值)