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文件当中.的更多相关文章

  1. Ajax中返回数据的格式

    Ajax中常见的返回数据的格式有三种:分别为文本,XML和JSON 返回的文本格式我们在上一堂课Ajax基础介绍中已经介绍过了 Ajax.php Form.html:通过Ajax对象的response ...

  2. 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict

    帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...

  3. CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr

    场景描述:前段时间,将实时数据通过kafka+flume+morphline的方式接入到solr中.新进来的数据已经可以在solr中看到了,但是以前的历史数据还没有导入solr. CDH提供利用Map ...

  4. node——将用户提交的数据写入data.json文件

    前续 当我们在进行将数据提交到某个网页时,需要将提交数据保存下来 1.提交数据 2.获得数据 3.保存数据 先看提交数据: <!DOCTYPE html> <html lang=&q ...

  5. 菜鸟入门【ASP.NET Core】5:命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options

      命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来 ...

  6. 第九篇 数据表设计和保存item到json文件

    上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...

  7. 【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options

    命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来,我 ...

  8. 向多页TABLE中插入数据时,新增行总是在当前页的最后一行

    CODE IN CO OATableBean table = (OATableBean)webBean.findChildRecursive("LineTable"); int n ...

  9. Java中的字符串流的读取和写入(创建文件并判断重复账户)

    各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...

  10. 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. ...

随机推荐

  1. 如何安装Ascend深度学习套件

    1. 驱动安装 1.1 驱动测试 输入测试命令: npu-smi info 结果如下: 1.2 Ascend驱动未安装 请参考Ascend驱动的安装文档,进行安装对应显卡的驱动,文档链接如下:http ...

  2. pytest数据驱动(最简单)

    pytest数据驱动(最简单) 第一种:通过yaml文件获取数据(一维列表) data.yaml文件内容如下: - '软件测试'- '单元测试'- '自动化测试'- '性能测试'- '测试开发'- ' ...

  3. 【FastDFS】环境搭建 02 测试

    自带工具测试: 编辑客户端配置文件: vim client.conf 配置完成后,随便上传一个图片到root目录下 运行FastFDS文件上传程序,并将客户端配置文件作为加载参数1,要上传的图片文件位 ...

  4. 【Layui】05 选项卡 Tabs

    文档位置: https://www.layui.com/doc/element/tab.html 案例演示: <div class="layui-tab"> <u ...

  5. python语言绘图:绘制一组二项分布图

    代码源自: https://github.com/PacktPublishing/Bayesian-Analysis-with-Python ============================= ...

  6. vue之条件判断v-if与v-show

    1.背景 2.v-if简单使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  7. [SDOI2012] 走迷宫 题解

    前言 题目链接:洛谷:Hydro & bzoj. 题意简述 有向图中,求起点到终点的期望步数.若期望不存在,输出 INF. 保证强连通分量的大小不超过 \(100\). 题目分析 首先来想想什 ...

  8. DophinScheduler 如何定期删除日志实例?

    转载自东华果汁哥 Apache DophinScheduler 运行一段时间后,实例调度日志越来越多,需要定期清理. SQL 错误 [1701] [42000]: Cannot truncate a ...

  9. 零基础学习人工智能—Python—Pytorch学习(三)

    前言 这篇文章主要两个内容. 一,把上一篇关于requires_grad的内容补充一下. 二,介绍一下线性回归. 关闭张量计算 关闭张量计算.这个相对简单,阅读下面代码即可. print(" ...

  10. 【问题解决】git status中文文件名乱码

    问题复现 解决办法 在git bash中直接执行如下命令 git config --global core.quotepath false 原因 通过 git config --help 可以查看到以 ...