将一个Eigen::Matrix中的数据(数组格式),按行写入到json文件当中.
1.这里主要实现如何以数组的形式写入到json文件当中,因为c++的Jsoncpp库中的.append只支持一个字符的写入(还是python的json友好)。去网上找了老久的解决办法,发现中文解答全是复制粘贴,真垃圾。最终还是自己花费了半天时间摸索怎么加(我好难,想哭)。话不多说,直接贴代码。
void writeFileJson(Eigen::Matrix<double, 2, 2> &point)
{
std::cout<<point<<std::endl;
//根节点
Json::Value root; // 创建一个一级节点
Json::Value second; // 创建一个二级节点 for(int i=0;i<point.rows(); i++){
double a[2] = {point.row(i)[0], point.row(i)[1]};
Json::Value third; // 因为我们要实现数组的追加,所以我们需要在这一层创建一个三级节点
for(auto i : a) {
third.append(i); // 因为对于C++ Json来说,只支持单个字符的追加,所以我们这里需要这句代码;
}
second["two title"].append(third); // 追加完之后,将追加的数组放在上一个数组之后。
}
//根节点属性
root["first title"].append(second); // 将我们的二级节点与一节节点关联起来
Json::StyledWriter sw; // 创建一个带有格式的写入
Json::FastWriter fw;
std::ofstream desFile("/Users/wpx/arap2/data/demo.json", std::ios::out | std::ios::app); // 不删除之前内容的添加
if (!desFile.is_open()) // 判断是否可以打开json文件;
{
std::cout << "Fail to pen des.jons";
}
desFile << fw.write(root); // 不带有格式的写入到json文件中。(就是在一行上写入所有内容)
// desFile << sw.write(root); // 有格式的写入到json文件中。(多行显示)
desFile.close(); // 记得关闭打开的json文件
}
fw输出格式:
{"first title":[{"two title":[[1.0,2.0],[3.0,4.0]]}]}
sw输出格式:
{
"first title" : [
{
"two title" : [
[ 1.0, 2.0 ],
[ 3.0, 4.0 ]
]
}
]
}
2.既然说了python很好,我这里也贴一下python版的;
def create_json(points, file_name):
#points 就是我们的数据,我这里是numpy数组格式。
# file_name 你要保存的json文件路径
point = []
jsons = points
for j in range(len(jsons)):
data = jsons[j]
data.append(0.936177)
point.append(data)
diract = {'first title': [{'second title': point}]}
with open(file_name, 'w') as outfile:
json.dump(str(diract), outfile)
将一个Eigen::Matrix中的数据(数组格式),按行写入到json文件当中.的更多相关文章
- Ajax中返回数据的格式
Ajax中常见的返回数据的格式有三种:分别为文本,XML和JSON 返回的文本格式我们在上一堂课Ajax基础介绍中已经介绍过了 Ajax.php Form.html:通过Ajax对象的response ...
- 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict
帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...
- CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr
场景描述:前段时间,将实时数据通过kafka+flume+morphline的方式接入到solr中.新进来的数据已经可以在solr中看到了,但是以前的历史数据还没有导入solr. CDH提供利用Map ...
- node——将用户提交的数据写入data.json文件
前续 当我们在进行将数据提交到某个网页时,需要将提交数据保存下来 1.提交数据 2.获得数据 3.保存数据 先看提交数据: <!DOCTYPE html> <html lang=&q ...
- 菜鸟入门【ASP.NET Core】5:命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来 ...
- 第九篇 数据表设计和保存item到json文件
上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...
- 【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来,我 ...
- 向多页TABLE中插入数据时,新增行总是在当前页的最后一行
CODE IN CO OATableBean table = (OATableBean)webBean.findChildRecursive("LineTable"); int n ...
- Java中的字符串流的读取和写入(创建文件并判断重复账户)
各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...
- CMD批处理把txt文本中的每行写入一个新文件,第一列作文件名
需求 现在有一个文件格式如图 ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17001 89.84 8.87 1.29 -0.0 0.0 68.99 0.0 0. ...
随机推荐
- Scratch源码下载 | 3D钻石
程序说明: <3D钻石>是一个利用Scratch平台创作的独特艺术作品.此程序在屏幕上呈现一个精致的3D钻石模型,允许用户通过鼠标操作来旋转和查看钻石的不同角度.该程序还提供了修改钻石参数 ...
- Springboot + Vue ElementUI 实现MySQL可视化
一.功能展示: 效果如图: DB连接配置维护: Schema功能:集成Screw生成文档,导出库的表结构,导出表结构和数据 表对象操作:翻页查询,查看创建SQL,生成代码 可以单个代码文件下载,也 ...
- 【Windows】远程访问设置
Windows自带了远程访问功能: Win + R 打开运行,输入[mstsc] 连接需要提供主机地址,和用户账号 下面的选项可以保存此连接为文件,下一次连接直接打开文件即可访问 当然设置了以后可能还 ...
- 【MySQL】29 索引
MySQL是一个关系型的数据库 使用标准的SQL数据格语言格式 支持大型数据库,处理千万级别的记录数据 允许多系统运行,支持多种编程语言连接 最重要的一点是MySQL允许定制,采用GPL协议,允许修改 ...
- OneFlow框架0.9.1dev版本,成功安装并运行
安装cuda和cudnn: (此步骤可以忽略,pip安装框架时会自动安装依赖的cuda和cudnn环境) conda install cudatoolkit==11.8.0 python3 -m pi ...
- 在深度计算框架MindSpore中如何对不持续的计算进行处理——对数据集进行一定epoch数量的训练后,进行其他工作处理,再返回来接着进行一定epoch数量的训练——单步计算
如题所述: 深度学习框架MindSpore是华为公司研发的,由于性能设计的原因,MindSpore的一些使用方式和TensorFlow和PyTorch有一些不同,其中的一点就是在进行单步计算或者是非持 ...
- docker启动一个不停止的centos系统容器
启动的镜像后加上/usr/sbin/init ,前提是镜像中没有设置entrypoint
- Json Number Format 异常 Expected an int but was 2168520652 at line 1 column 325
某变量声明为Integer类型,报json 转换异常 超出了Integer的最大值2147483647, 将类型修改为BigInteger即可,BigInteger:支持任意精度的整数 写Bean时, ...
- docker with GPU support
自己总结的: nvidia-docker, 不支持windows,2019.10, nvidia-docker过时了,从docker 1903开始,安装一个nvidia-container-runti ...
- java 知识
1. 单文件java 例子和简单项目例子 http://kleinfelter.com/java-hello-world-with-visual-studio-code-and-eclipse jav ...