【发布时间】:2016-04-21 15:18:01
【问题描述】:
我有一个名为“output.txt”的文件:
"name": "abc",
"age": 28,
"name": "xxx",
"age": 11,
"name": "yyyb",
"age": 15,
我想读取文件并在一行中打印姓名和年龄值,一个接一个:
abc 28
xxx 11
yyyb 15
我写的代码是:
file_data = {}
object= File.open('output.txt', 'r') do |file|
file.each_line do |line|
key,value = line
file_data[value] = key
puts file_data
我得到:
{nil=>" \"name\": \"abc"\",\n"}
{nil=>" \"age\": 28,\n"}
{nil=>" \"name\": \"11"\",\n"}
{nil=>" \"age\": false,\n"}
{nil=>" \"name\": \"yyyb\",\n"}
{nil=>" \"age\": 15,\n"}
【问题讨论】:
-
不要将该行分配给两个变量并将其放入哈希中并打印出来。只需解析它(可能使用正则表达式)并打印您想要的部分。
-
你为什么不用yaml文件?
-
是的,使用 YAML 或 JSON 要好得多,因为它使输出和解析变得非常简单。如果可以为您完成,您不应该手动编码格式化和解析。
-
@Dave Schweisguth 你能给出代码的例子吗?
-
大家好,我正在使用我们服务器上的 ruby 1.8.7 -- 使用 json 时出现错误,无法解析它。所以尝试另一种方式
标签: ruby ruby-1.9.3 ruby-1.9 ruby-1.8.7