首页 > 其他分享 >文本序列化ChoETL

文本序列化ChoETL

时间:2024-10-24 11:10:18浏览次数:1  
标签:objs 序列化 rec1 Name ChoETL rec2 new 文本 Id

安装:

Install-Package ChoETL

网站:https://github.com/Cinchoo/ChoETL

1、CSV文件操作

//CSV文件
Id,Name
1,Tom
2,Carl
3,Mark
//CSV读取
foreach (dynamic e in new ChoCSVReader("Emp.csv").WithFirstLineHeader())
    Console.WriteLine("Id: " + e.Id + " Name: " + e.Name)
    
//CSV写入
List<ExpandoObject> objs = new List<ExpandoObject>();
dynamic rec1 = new ExpandoObject();
rec1.Id = 1;
rec1.Name = "Mark";
objs.Add(rec1);

dynamic rec2 = new ExpandoObject();
rec2.Id = 2;
rec2.Name = "Jason";
objs.Add(rec2);

using (var parser = new ChoCSVWriter("Emp.csv"))
{
    parser.Write(objs);
}

2、XML文件操作

//XML文件
<Employees>
    <Employee Id='1'>
        <Name>Tom</Name>
    </Employee>
    <Employee Id='2'>
        <Name>Mark</Name>
    </Employee>
</Employees>
//xml文件读取
foreach (dynamic e in new ChoXmlReader("Emp.xml"))
    Console.WriteLine("Id: " + e.Id + " Name: " + e.Name);

//xml文件写入
List<ExpandoObject> objs = new List<ExpandoObject>();
dynamic rec1 = new ExpandoObject();
rec1.Id = 1;
rec1.Name = "Mark";
objs.Add(rec1);

dynamic rec2 = new ExpandoObject();
rec2.Id = 2;
rec2.Name = "Jason";
objs.Add(rec2);

using (var parser = new ChoXmlWriter("Emp.xml").WithXPath("Employees/Employee"))
{
    parser.Write(objs);
}

3、Json文件操作

//JSON文件
[
    {
    "Id": 1,
    "Name": "Mark"
    },
    {
    "Id": 2,
    "Name": "Tom"
    }
]
//JSON读取
foreach (dynamic e in new ChoJSONReader("Emp.json"))
    Console.WriteLine("Id: " + e.Id + " Name: " + e.Name);

//JSON写入
List<ExpandoObject> objs = new List<ExpandoObject>();
dynamic rec1 = new ExpandoObject();
rec1.Id = 1;
rec1.Name = "Mark";
objs.Add(rec1);

dynamic rec2 = new ExpandoObject();
rec2.Id = 2;
rec2.Name = "Jason";
objs.Add(rec2);

using (var parser = new ChoJSONWriter("Emp.json"))
{
    parser.Write(objs);
}

标签:objs,序列化,rec1,Name,ChoETL,rec2,new,文本,Id
From: https://www.cnblogs.com/wzwyc/p/18499234

相关文章

  • 怎么搭建图片转文本GOT-OCR2.0
    Github地址http://gitlab.xiaoxingcloud.com/ai/GOT-OCR2.0.git介绍GOT-OCR2.0是一款用于图片转文字开源软件环境查看系统环境#lsb_release-aNoLSBmodulesareavailable.DistributorID: UbuntuDescription: Ubuntu22.04.5LTSRelease: 22.04Codename: jammy#......
  • ECharts饼图-富文本标签,附视频讲解与代码下载
    引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个饼图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供详细的视频讲解和代码下载链接,帮助大家快速上手。一、图表效果预览 二、视......
  • 【HarmonyOS】根据文本内容动态测算文本控件宽高
    【HarmonyOS】根据文本内容动态测算文本控件宽高问题背景:一般情况下,在鸿蒙里文本控件Text或者Span的宽高,我们都会设置固定宽高,或者根据内容自适应,不设置固定宽高。但是在特殊场景下,例如,父组件的宽高需要根据子组件的内容动态设置宽高。或者是文本控件根据内容会有行数变化。都需......
  • Azure语音转文本服务:智能识别,中英文无缝转换
    作用:说话的人说的是英文,那么转换成的文本就是英文的,同理,说话的人说的是中文,那么转换成的文本也就是英文的。完整可跑通的代码很简单:importazure.cognitiveservices.speechasspeechsdkdefrecognize_from_microphone(filename):#Thisexamplerequiresenvironmentvar......
  • 使用Llama Index与Streamlit实现一个从文本中提取专业术语和定义网页小程序
    LlamaIndex有很多文档完备的用例(语义搜索、摘要等)。然而,这并不意味着我们不能将LlamaIndex应用到非常具体的用例中!在本教程中,我们将介绍使用LlamaIndex从文本中提取术语和定义的设计过程,同时允许用户稍后查询这些术语。使用Streamlit,我们可以提供一种简单的方法来构建用......
  • AOT漫谈专题(第六篇): C# AOT 的泛型,序列化,反射问题
    一:背景1.讲故事在.NETAOT编程中,难免会在泛型,序列化,以及反射的问题上纠结和反复纠错尝试,这篇我们就来好好聊一聊相关的处理方案。二:常见问题解决1.泛型问题研究过泛型的朋友应该都知道,从开放类型上产下来的封闭类型往往会有单独的MethodTable,并共用EEClass,对于值类型......
  • JavaSE——IO流5:高级流(序列化与反序列化流/对象操作流)
    目录一、序列化流/对象操作输出流——ObjectOutputStream二、反序列化流/对象操作输入流——ObjecInputStream三、序列化流和反序列化流使用细节1.Serializable接口2.序列化后的文件不可修改3.serialVersionUID4.transient修饰的不能被序列化四、用对象流读写多个对象......
  • LongBench: 一个双语多任务的长文本理解基准测试
    LongBench:开创性的长文本理解评估基准在人工智能和自然语言处理领域,大语言模型(LLMs)的出现无疑是一场革命。这些模型在各种语言任务中展现出惊人的能力,但它们也面临着一个共同的挑战-长文本理解。大多数LLMs只能处理几千个token的输入,这严重限制了它们在处理长篇文档、报......
  • Java反序列化 - CC1链 (代码审计)
    R###一、环境准备:Java环境:Java_1.8.0_8u65ApacheCommonsCollections3.2.2版本二、漏洞简述:cc链是Apachecommonscollections反序列漏洞利用链的简称。可以通过构造恶意类,利用Java反序列化漏洞进行RCE。漏洞复现:CC1链源头:org.apache.commons.collections.Transformer#tr......
  • 七,对象流(序列化)
    Java对象流(ObjectStreams)详解在Java中,对象流是用于对象的序列化和反序列化。序列化是将对象的状态信息转换为可以存储或传输的格式的过程,而反序列化则是将这种格式还原为Java对象的过程。对象流包括对象输出流ObjectOutputStream和对象输入流ObjectInputStream。序列化与反序列......