将一个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. ...
随机推荐
- Linux系统下查找安装包所在目录
Linux系统下查找安装包所在目录 想知道Linux系统下安装了哪些软件包,以及软件包安装在哪个目录下,可以用以下命令 1. which which命令查找出相关命令是否已经在搜索路径中,例子如下:$ ...
- 【Web】 抓包工具Charles
官方软件包下载 https://www.charlesproxy.com/download/ 在线生成激活码: https://www.zzzmode.com/mytools/charles/ 代理设 ...
- 【SpringMVC】12 文件上传和下载
编写一个请求上传和下载的JSP页面 <%@ page contentType="text/html;charset=UTF-8" language="java&qu ...
- 【MUI】工作总结
1.快速创建页面结构: mDoctype HTML: <!doctype html> <html lang="en"> <head> <m ...
- 【Layui】06 面板 Panel
文档地址: https://www.layui.com/doc/element/panel.html 演示案例: <div class="layui-collapse"> ...
- mujoco_py.cymj.GlfwError: Failed to initialize GLFW
安装mujoco后运行可视化界面代码报错: mujoco_py.cymj.GlfwError: Failed to initialize GLFW 解决方法: sudo apt-get install ...
- 为wsl ubuntu设置固定IP
参考: https://www.cnblogs.com/lidabo/p/16855858.html https://zhuanlan.zhihu.com/p/515068209 ========== ...
- [COCI2015-2016#1] RELATIVNOST 题解
前言 题目链接:洛谷. 这道题有很多做法,但是模拟赛寄了,故记之. Update on 2024.7.23 修复了一处时间复杂度的笔误. 题意简述 给你两个长为 \(n\) 的序列 \(A\) 和 \ ...
- 新版的Django Docker部署方案,多阶段构建、自动处理前端依赖
前言 前几天的文章中,我们已经把使用 pdm 的项目用 docker 搞定了,那么下一步就是把完整的 DjangoStarter v3 版本用 docker 部署. 现在不像之前那么简单直接一把梭了, ...
- 神经网络之卷积篇:详解三维卷积(Convolutions over volumes)
详解三维卷积 从一个例子开始,假如说不仅想检测灰度图像的特征,也想检测RGB彩色图像的特征.彩色图像如果是6×6×3,这里的3指的是三个颜色通道,可以把它想象成三个6×6图像的堆叠.为了检测图像的边缘 ...