将csv内容转为对象数组,它能够正确处理由逗号分隔的数据,并且能够忽略双引号中的逗号

这篇具有很好参考价值的文章主要介绍了将csv内容转为对象数组,它能够正确处理由逗号分隔的数据,并且能够忽略双引号中的逗号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

它能够正确处理由逗号分隔的数据,并且能够忽略双引号中的逗号。文章来源地址https://www.toymoban.com/news/detail-517084.html

读取csv内容

  const getCSVData = (file: RcFile): Promise<string> => {
    return new Promise((resolve, reject) => {
      const csvReader = new FileReader();
      csvReader.readAsText(file);
      csvReader.onload = (e) => {
        const data = e.target?.result;
        resolve(data as string);
      };
      csvReader.onerror = (error) => reject(error);
    });
  };

解析csv内容

/**
 * 将csv格式字符串转为对象数组
 * @param csv csv字符串
 * @param choosenField 转换得到的字段,默认为全部获取
 * @returns 返回转换得到的结果
 */
export const csvToObjArr = (csv: string, choosenField?: string[]) => {
  const contents = csv.split(/\r\n|\n/);
  const headers = contents[0].split(',');
  const res = contents.slice(1, -1).map((line, index) => {
    const obj: any = {};
    // 以逗号分隔,但是不包括双引号中的逗号
    line.split(/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/).forEach((item, i) => {
      if (item !== '') {
        if(choosenField){
          if(choosenField.includes(headers[i])){
            obj[headers[i]] = item;
          }
        }else{
          obj[headers[i]] = item;
        }
      }
    });
    return obj;
  });
  return res;
};

到了这里,关于将csv内容转为对象数组,它能够正确处理由逗号分隔的数据,并且能够忽略双引号中的逗号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java将list转为逗号隔开字符串

    通过StringUtils的join函数直接获取逗号隔开字符串 最近用到很多字符串拼接的场景,自己做一点梳理和记录,方便使用的时候获取。 1、将listString转为逗号隔开字符串 1)只要不为空,就在后面添加逗号,最后再用subString()函数截取,去掉最后一位的逗号  ListString test = new

    2024年02月09日
    浏览(48)
  • Hive 导入csv文件,数据中包含逗号的问题

    今天 Hive 导入 csv 文件时,开始时建表语句如下: 然后导入 csv 文件,发现数据串列了,查看数据发现是因为数据中包含逗号的问题,因为 csv 文件列分隔符就为逗号,所以直接导入到表中会使数据串列。 查询资料发现是建表语句的问题,所以我们要需要在建表的时候指定列

    2024年02月11日
    浏览(43)
  • 《Java面向对象程序设计》学习笔记——CSV文件的读写与处理

    ​笔记汇总: 《Java面向对象程序设计》学习笔记 笔记记录的不是非常详实,如果有补充的建议或纠错,请踊跃评论留言!!! CSV 是英文 comma-separated values 的缩写,翻译为 “逗号分隔值“。 CSV 文件可以理解为以带逗号分隔(也可以是其他简单字符分割)的纯文本形式存储

    2024年02月10日
    浏览(49)
  • Python中数据处理(npz、npy、csv文件;元组、列表、numpy数组的使用)

    目录 1.npz文件 2.npy文件 3.csv文件 4.列表、元组、numpy矩阵 ①列表 ②元组(不可变列表) ③Numpy数组 ③Numpy矩阵 1.npz文件 npz是python的压缩文件 ①读取文件 ② NpzFile 对象有个属性 files 可以通过它查看该压缩文件的所有文件名,通过 dataset[\\\'文件名\\\'] 来获取文件内容 ③保存为.npz文件

    2024年02月03日
    浏览(44)
  • Hive学习:Hive导入字段带逗号和换行符的CSV文件

    比如上面这行数据,字段\\\"600,000,000,00\\\"带多个逗号,这个可以用hive中内置的语句来解决,使用OpenCSVSerde来解析CSV格式的数据,并指定了CSV文件中使用的分隔符、引号字符和转义字符 ‘separatorChar’ = ‘,’:指定CSV文件中使用的分隔符为逗号(,) ‘quoteChar’ = ‘\\\"’:指定CSV文件中

    2024年02月11日
    浏览(51)
  • Java获取字符串中逗号前的内容

    可以使用Java的 indexOf 和 substring 方法来获取字符串中逗号前的内容。 首先,使用 indexOf 方法找到逗号在字符串中的位置,然后使用 substring 方法截取字符串中从开头到逗号位置之前的内容。 例如,假设你有一个字符串 str ,它的值为 \\\"apple,banana,orange\\\",要获取逗号前的内容(也

    2024年02月16日
    浏览(40)
  • SpringBoot处理form-data表单接收对象数组

    主要是为了存档,碰到表单传对象数组的情况,一般都是一个表单只能传一个对象,后面经过跟前端的研究和讨论发现居然可以传对象数组,以此作为记录分享。 测试直接使用下标方式请求 直接使用属性下标的方式传递 请求: 示例代码: 结果: java.lang.IllegalStateException:

    2024年02月03日
    浏览(62)
  • 用Python把csv文件批量修改编码为UTF-8格式并转为Excel格式

    有时候用excel打开一个csv文件,中文全部显示乱码。然后手动用notepad++打开,修改编码为utf-8并保存后,再用excel打开显示正常。 使用Python通过很少代码就能将上面过程自动化。 导入3个模块 chardet 模块用于得到文件的编码格式,pandas 按照这个格式读取,然后保存为xlsx格式。

    2024年02月07日
    浏览(61)
  • #java 逗号分隔String字符串 - 数组 - 集合,相互转换

    1. 准备一个逗号分割字符串 2. 逗号分割字符串转换为集合(转换为集合之前会先转换为数组) 3. 集合转换为逗号分隔的字符串 4. 数组转逗号分隔字符串

    2024年02月04日
    浏览(51)
  • java List数组用逗号分隔开,转成字符串

    方法一:使用Java 8的Stream流来实现List数组用逗号分隔开,转成字符串,具体实现如下: 方法二:使用Stream的collect方法,结合Collectors.joining方法,可以将List中的元素用指定的分隔符连接起来,生成一个字符串。在上面的代码中,我们使用了逗号作为分隔符,将List中的元素连

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包