CSV 转换为哈希

2023-12-07

我有一个 csv,第一列是一个标签,后跟逗号分隔值:

LabelA,45,56,78,90
LabelB,56,65,43,32
LabelC,56,87,98,45

我希望第一列(LabelA 等)成为散列中的键,数值位于数组中。

我可以将文件读入数组或标量,但我不确定之后要做什么。建议??

编辑: 好的,看起来这会将值分配给一个键..但是我的示例中的逗号分隔数字又如何呢?他们要去哪?它们在 %hash 中吗?如果是这样,你能不能进一步简化你的解释?谢谢。


就我个人而言,我喜欢文本::CSV_XS and IO::File module:

use Text::CSV_XS;
use IO::File;

# Usage example:
my $hash_ref = csv_file_hashref('some_file.csv');

foreach my $key (sort keys %{$hash_ref}){
   print qq{$key: };
   print join q{,}, @{$hash_ref->{$key}};
   print qq{\n};
}

# Implementation:
sub csv_file_hashref {
   my ($filename) = @_;

   my $csv_fh = IO::File->new($filename, 'r');
   my $csv = Text::CSV_XS->new ();

   my %output_hash;

   while(my $colref = $csv->getline ($csv_fh))
   {
      $output_hash{shift @{$colref}} = $colref;
   }

   return \%output_hash;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSV 转换为哈希 的相关文章

  • Perl YAML 模块无法识别标量类型

    我加载以下 yaml 文件 foo bar s 1 hx 0x34 用这段代码 use YAML qw LoadFile Dump use Data Dumper my d LoadFile test yaml print Dumper d
  • 如何确保我的代码永远不会直接退出?

    eval require file subsequent code goes here If file包含一个exit语句 后面的代码就没有机会运行 如何解决以便后续代码始终有机会运行eval已经完成了 中止是不可能的exit call f
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self
  • 使用 LWP::Agent 的 Perl JSON::RPC::Client

    我被要求不使用 JSON RPC Client 而是使用 LWP 进行调用 这是我的代码 Server usr bin perl use strict use lib use ServerLib use JSON RPC Server Da
  • 打包 Perl 应用程序,以便它可以在 Perl 的默认前缀之外工作

    我正在使用 Module Build 尽管我在构建环境上很灵活 来打包我正在编写的一些 Perl 软件 供我工作的内部使用 它包括一些脚本和一些辅助模块 我的计划是这样你就可以指定任何你想要的前缀 即perl默认值之外的东西 INC 在构建
  • 是否有理由在 Perl 中使用 open(...) 的双参数形式?

    是否有任何理由使用双参数形式open 在 Perl 中而不是三个或更多参数的版本 我能想到的唯一原因是明显的观察结果 即两个参数的形式更短 但是假设冗长不是问题 是否有任何其他原因会让您选择双参数形式open 一参数和二参数 open 应用
  • 在 C# 中使用 SHA1 算法进行哈希处理

    我想哈希给定byte 数组与使用SHA1算法与使用SHA1Managed The byte 哈希值将来自单元测试 预期的哈希值是0d71ee4472658cd5874c5578410a9d8611fc9aef 区分大小写 我怎样才能实现这个
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • 如何打印v字串?

    如何打印v字串 our VERSION v2 1 print VERSION n n 打印笑脸 打印 v 字符串是什么意思 你想要什么输出 你可以这样做 printf vd VERSION prints 2 1 or this print
  • Excel 保存制表符分隔的文件而不换行 (UNIX/Mac os X)

    这是我遇到的一个常见问题 我的解决方案有点鲁莽 所以我正在寻找问题的快速解决和解释 问题是 当我决定将 Excel mac 2011 中的电子表格保存为制表符分隔文件时 它似乎做得很好 直到我尝试使用 Perl 逐行解析文件 由于某种原因
  • Perl OLE32 MSSQL dateadd 函数结果出现“光标类型已更改”错误

    以下 sql select DATEADD day DATEDIFF day 2 GETDATE 20 00 00 as A 在 Microsoft sql 查询中运行得非常好 然而在 perl 中 它抱怨以下错误 描述 Microsoft
  • 在 Perl 中用条件停止进程

    我在下面问了以下问题 我找到了一个非常接近的答案 但后来意识到它不起作用 我在 perl 中使用管道 但在我通过管道达到我的条件之前 该函数就完成了运行 有没有办法在运行时精确地检查 10 个香蕉通过后停止该过程 解析输出并计算字符串出现的
  • 如何在不描述每个元素的格式的情况下打印数组?

    我想打印几个数组 输出的元素的字段宽度为 3 我想我可以使用printf 但如果我使用printf然后我需要编写数组所有元素的格式 但数组很大 例如 array 1 10 100 30 printf 3d 3d 3d 3d n array
  • Rails 从哈希数组中选择最大值

    我有一个像这样的哈希数组 我想取其中的最大值 data name abc value 10 0 name def value 15 0 name ghi value 20 0 name jkl value 50 0 name mno val
  • 正则表达式查找 bcrypt 哈希值?

    我正在寻找使用正则表达式 在 PowerGrep 中 在数据库中查找 bcrypt 哈希字符串 尝试了这个正则表达式 A Za z 0 9 60 但没有找到匹配项 Bcrypt 哈希长度为 60 个字符 以 2y 开头 Example 2y
  • 使用 SSH,从另一个 perl 文件远程执行一个 perl 文件并传递包含空格的参数的最佳方法是什么?

    这是我所拥有的 服务器 A 上的 CGI 脚本获取在 Web 表单中输入的参数 创建一个远程 ssh 命令 该命令调用服务器 B 上的另一个 perl 文件 并将所有参数作为参数传递给 ash 命令 服务器 B 上的 Perl 文件解析参数
  • 将 Windows RC4 CryptDeriveKey 转换为 PHP 以用于 openssl

    这是我们一直在尝试做的遗留系统翻译的第二个组成部分 我们已成功匹配 Windows CryptHashData 生成的初始二进制密码 密钥 该密码 密钥被传递到 CryptDeriveKey 在那里它执行许多步骤来创建由 CryptEncr
  • 如何在 Perl 中生成数组的所有排列?

    生成所有内容的最佳 优雅 简单 高效 方式是什么 n perl 中数组的排列 例如 如果我有一个数组 arr 0 1 2 我想输出所有排列 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 它可能应该是一个返回迭代器的

随机推荐

  • 如何在没有任何smtp服务器的情况下在golang中发送电子邮件[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想从用 golang 编写的服务器应用程序发送批量邮件 我只是不想使用任何第三方 smtp 服务器来避免使用配额限制 如何在没有 smtp 服务器的情况下发送电子邮件 标准库中
  • JSON 与 JSONB Postgresql

    我正在 PostgreSql 文档上阅读有关 JSON 和 JSONB 数据类型之间的差异的信息https www postgresql org docs 13 datatype json html 有这条线 json 数据类型存储输入文本
  • 使用指针写入和读取(fwrite - fread)结构

    我正在开发一个邮箱项目 我有以下两种结构 结构mmbox mail struct mmbox mail char sender recipient char obj date char flags size t size and mail
  • 如何从HashMap中获取可变结构体?

    我有一个所有状态的哈希图 它是HashMap
  • 对于不返回值的函数使用map()

    我有一个快速的问题 如果我有一个函数 a 1 2 3 4 5 6 7 def f x return x 2 result list map f a print result gt gt gt 1 4 9 16 25 36 49 但如果我 r
  • Microsoft的Graph权限资源类型没有邀请

    一直尝试使用 Microsoft Graph 的统一 API 和 OneDrive API 收集有关特定 DriveItem 权限的信息 文档指出以下属性可在权限资源类型 grantedTo application displayName
  • 使用可变空间对齐的 C# 字符串格式化

    我想做类似的事情 String Format Completed 0 9 of 0 xlsx totalCount ToString 除了对 9 进行硬编码之外 我希望对齐方式为 xlsx totalCount 的任何值 有什么想法吗 试试
  • 删除二维数组中的重复项,同时保持顺序

    我发现了很多关于删除数组中重复项的线程 但没有一个适合我的特定用例 我有一个二维列表 我需要从中删除重复项 但我必须保持原始序列 mylist Installation 64 C2 14 NA 14 C2 14 NA 14 na 7 我需要
  • 如何将 Web Audio API 连接到 Tone.js?

    我正在做一个在线音频播放器 所以我想整合变调器在我的应用程序中 可以在Tone js但不在网络音频API 所以我的想法是连接Tonejs 变调器 to 网络音频 API 音频上下文 有什么可行的办法吗 这是我的代码供参考 var audio
  • 如何在静态基方法中创建继承的实例?

    从一个例子来看 我可能会这样做 var obj Activator CreateInstance GetType 但不确定如何在静态基方法中获取继承类的 typeof 这是最好的前进方式吗 public static Method
  • 如何从 SQL Server 中的表查询 Xml 值和属性?

    我有一个表 其中包含Xml column SELECT FROM Sqm 的一个样本xml一行的数据将是
  • 了解通过动态分配引用传递参数

    我正在尝试了解如何在 C 语言中通过引用传递参数 所以我编写了这段代码来测试参数传递的行为 include
  • 如何从互动经纪商API获取历史股价数据?

    我想使用IBAPI来获取历史股票数据 我的代码不起作用并且不返回任何内容 有人可以帮我编辑代码吗 谢谢 from ibapi import client from ibapi import wrapper import datetime f
  • Laravel flash 或会话消息不会过期 [ 未维护更新 ]

    经过一些研究后更新经过一些研究 我得出的结论是 在我明确保存它们之前 我的会话不会得到维护 下面的代码运行良好 但为什么 Ref here Session put lets test 2 Session save 老问题我是 laravel
  • 为什么 Rust 的 read_to_end 不将文件读入缓冲区?

    代码 根据我的实际问题改编 非常简单 但我无法弄清楚我缺少什么 它将正确写入文件 但它的输出是Buffer 由于某种原因没有从文件中读取任何内容 它是什么 use std io Read Write fn main let mut test
  • 区分“colorbar”中的剪裁值

    我有一个pcolormesh绘图 其中颜色图通过设置进行裁剪vmin和和vmax严格在绘制的值范围内 有没有办法有关联colorbar从底部和顶部分离一块以表示相关颜色超出了颜色图的范围 是的 您需要使用extend both颜色栏的关键字
  • 为什么每次使用 malloc 时都会收到警告?

    如果我使用malloc在我的代码中 int x malloc sizeof int 我收到此警告gcc new c 7 warning implicit declaration of function malloc new c 7 warn
  • jqGrid - 复选框编辑无法编辑所选行

    在我的 jqGrid 中 我有一个也可用于编辑的复选框 即用户可以单击该复选框 并且该复选框的值将在数据库中更新 效果很好 但是 当我单击该复选框并尝试再次单击它时 什么都没发生 该行不会被保存 理论上应该保存复选框未选中的值 但这并没有发
  • Angular 9 库构建失败

    我正在尝试迁移这个库https github com flauc angular2 notifications从 Angular 2 到 Angular 9 最初的错误是关于ModuleWithProviders这已经成为一个通用类型 所以
  • CSV 转换为哈希

    我有一个 csv 第一列是一个标签 后跟逗号分隔值 LabelA 45 56 78 90 LabelB 56 65 43 32 LabelC 56 87 98 45 我希望第一列 LabelA 等 成为散列中的键 数值位于数组中 我可以将文