【go语言】结构体数据填充生成md错误码文件

 这里使用pongo2这个模版引擎库进行md文件渲染GitHub - flosch/pongo2: Django-syntax like template-engine for Go

package mainimport ("fmt""github.com/flosch/pongo2/v6""os"
)func main() {// 假设有一个名为 data 的 map 数组data := []map[string]interface{}{{"Name": "John", "Age": 30, "Country": "USA"},{"Name": "Alice", "Age": 25, "Country": "Canada"},{"Name": "Bob", "Age": 35, "Country": "UK"},}// 使用 Pongo2 模板定义表格templateString := `
# User Data| Name  | Age | Country |
|:-------:|:-----:|:---------:|
{% for user in data %}| {{ user.Name }} | {{ user.Age }} | {{ user.Country }} |
{% endfor %}`// 解析模板template, err := pongo2.FromString(templateString)if err != nil {fmt.Printf("Error parsing template: %v\n", err)return}// 执行模板output, err := template.Execute(pongo2.Context{"data": data})if err != nil {fmt.Printf("Error executing template: %v\n", err)return}// 打印输出或将其保存到文件fmt.Println(output)// 也可以将输出保存到文件file, err := os.Create("output.md")if err != nil {fmt.Printf("Error creating file: %v\n", err)return}defer file.Close()file.WriteString(output)
}

Go 语言原生如下示例:

package mainimport ("fmt""strings"
)func main() {data := []map[string]interface{}{{"Name": "Alice", "Age": 25, "City": "New York"},{"Name": "Bob", "Age": 30, "City": "San Francisco"},// ... (更多数据)}mdTable := generateMarkdownTable(data)fmt.Println(mdTable)
}func generateMarkdownTable(data []map[string]interface{}) string {var builder strings.Builder// 表头headers := make([]string, 0)for key := range data[0] {headers = append(headers, key)}writeRow(&builder, headers)// 表格数据for _, row := range data {values := make([]string, 0)for _, key := range headers {value := fmt.Sprintf("%v", row[key])values = append(values, value)}writeRow(&builder, values)}return builder.String()
}func writeRow(builder *strings.Builder, values []string) {builder.WriteString("| ")builder.WriteString(strings.Join(values, " | "))builder.WriteString(" |\n")
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure RP软件揭秘:设计师的秘密武器

Axure rp是一种快速原型设计工具,可以制作高度互动的HTML原型。设计师不仅可以使用Axure绘制线框图和原型,还可以在Axure rp中完成一系列用户体验设计。在本文中,我们将根据用户体验设计师的真实经验,触发用户体验设计师的实际工作…

如何实现本地USB设备共享服务映射到外网实现跨网USB共享通信访问

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的U…

vue的element ui使用el-table组件实现懒加载树、默认自动展开层级(一层,二层)、并且解决新增、删除、修改之后树节点不刷新问题

1.整体思路 问题:数据量太大了,导致接口返回数据时间较长。解决: 将ElementUi中Table组件加载改为懒加载(查看文档)。思路:初始化打开页面时只显示第一级菜单,用户点击展开菜单之后往后端发送请求,然后加载出一级子菜…

RT-Thread源码阅读(一)

前言 本文基于RT-Thread V4.1.1和STM32F103(Cortex-M3) 本文旨在理解RT-Thread设计的基本逻辑,为了让文章简短易懂,所以展出的源码都是精简过的,不会把开关中断,宏选择等放在讲解代码中。 可以看懂基本逻辑后查看源码领悟具体细…

编写递归算法,计算二叉树T中叶子结点的数目。

【题目】编写递归算法,计算二叉树T中叶子结点的数目。 二叉链表类型定义∶ typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; } BiTNode,*BiTree; 要求实现下列函数∶ int Leaves(BiTree T); /* 计算二叉树T中叶子结点的数目*/ #include …

适当催一下没确认订单的国外客户

在一片美丽的森林里,住着两只小鸟。其中一只非常勤奋,每天都早早起床,练习飞翔和觅食。而另外一个小鸟却非常懒惰,每天总是赖在窝里,不愿意努力,懒惰的小鸟总是想:反正有那只勤奋的鸟儿在&#…

【Linux】初识Linux及几个基本指令

Hello everybody!算算时间我已经有一个多月没有更新啦!因为本专业是纺织工程,所以一直在复习应付期末考试\(0^◇^0)/。那好,废话不多说。让我们进入今天的主题! 关于Linux系统可能很多同学不是很熟悉,有的人可能听过&…

如何在网络爬虫中解决CAPTCHA?使用Python进行网络爬虫

网络爬虫是从网站提取数据的重要方法。然而,在进行网络爬虫时,常常会遇到一个障碍,那就是CAPTCHA(全自动公共图灵测试以区分计算机和人类)。本文将介绍在网络爬虫中解决CAPTCHA的最佳方法,并重点介绍CapSol…

华为OD机试真题-分配土地-Python-OD统一考试(C卷)

题目描述: 从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民,请问,此次分配土地,做出贡献…

软件测试|使用matplotlib绘制多种饼图

简介 Matplotlib是一个强大的数据可视化库,它允许我们创建各种类型的图表,包括饼图。饼图是一种用于显示数据分布的常见图表类型。在本文中,我们将介绍如何使用Matplotlib创建不同类型的饼图,并提供示例代码。 创建标准饼图 首…

maven配置阿里云镜像源

要配置阿里云镜像源,需要在Maven的配置文件中添加以下内容: 打开Maven安装目录下的conf文件夹,找到settings.xml文件。 在settings.xml文件中,找到标签,如果没有则需要手动添加。 在标签中添加以下内容: …

【python】打包exe文件

使用PyInstaller可以将Python脚本打包成可执行的.exe文件。pyinstaller就是一种常用的打包方式,其中参数: --onefile参数表示将所有依赖项和脚本打包成一个单独的可执行文件,方便分发和执行。--noconsole参数表示在运行程序时不显示控制台窗…

Linux进程【2】进程地址空间(+页表详解哦)

fork 引言(程序地址空间)进程地址空间进程地址空间mm_struct 虚拟地址到物理地址的转化总结 引言(程序地址空间) 在之前的学习过程中,我们认识了内存与地址,并且了解了在程序地址空间中的基本分区&#xf…

2000年第五次人口普查数据,shp/excel格式均有,划分年龄段、性别占比等字段

基本信息. 数据名称: 第五次人口普查数据 数据格式: Shp、excel 数据时间: 2000年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源:第五次人口普查数据 数据字段: 序号字段名称字段说明1a2000_zrks2000年_常住人口(人&…

web块级如何居中,关于css/html居中问题

1. text-align:center; 可以实现其内部元素水平居中,通常用于字体水平居中,初学者也可以用于简单块级居中。这种方法对行内元素 (inline),行内块 (inline-block),行内表 (inline-table),inline…

实现一个MYSQL工具类,包含判断创建数据表是否存在,创建数据表

可以使用Python的MySQLdb模块来实现一个MYSQL工具类。下面是一个简单的实现示例: import MySQLdbclass MySQLTool:def __init__(self, host, user, password, database):self.host hostself.user userself.password passwordself.database databasedef connect…

“/bin/bash“: stat /bin/bash: no such file or directory: unknown

简介:常规情况下,在进入容器时习惯使用 /bin/bash为结尾,如:docker exec -it test-sanic /bin/bash, 但是如果容器本身使用了精简版,只装了sh命令,未安装bash。这时就会抛出"/bin/bash&quo…

Eureka 本机集群实现

距离上次发布博客已经一年多了,主要就是因为考研,没时间学习技术的内容,现在有时间继续完成关于代码方面的心得,希望跟大家分享。 今天在做一个 Eureka 的集群实现,我是在本电脑上跑的,感觉这个挺有意思&a…

Linux的网络文件共享服务之FTP服务

一.存储类型 1.1 存储类型分为三种 直连式存储:Direct-Attached Storage,简称DAS 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理) 网络附加存储:Net…

Day 48 动态规划 9

198. 打家劫舍1 代码随想录 1. 思路 本体是非常简单的动态规划问题,dp[i]就代表0-i这些家可以抢劫到的最大金额,分两种情况进行讨论。一个是抢当前的不抢之前的,一个是不抢当前的。代码如下: class Solution { public:int rob(v…