Arrays 删除尾随逗号的方法
我正试图向Arrays 删除尾随逗号的方法,arrays,ruby,Arrays,Ruby,我正试图向JSON格式的.txt文件发送hashlist中密码对的数组,以及它们在其中出现的频率。然后我将使用它生成图表。图表要求JSON数据采用以下格式: [["patches90",35], ["Champions17",32], ["scotty1977",29], ["Kiddos08",25], ["holidays2016",21], ["scott26me",17], ["People1123@",13], ["Software0)",9], ["Artistic104",5],
JSON
格式的.txt
文件发送hashlist
中密码对的数组,以及它们在其中出现的频率。然后我将使用它生成图表。图表要求JSON
数据采用以下格式:
[["patches90",35],
["Champions17",32],
["scotty1977",29],
["Kiddos08",25],
["holidays2016",21],
["scott26me",17],
["People1123@",13],
["Software0)",9],
["Artistic104",5],
["bank123",2]]
我正在使用以下代码:
f = open('/var/www/html/hashtopussy/top10.txt', 'w')
f.print "["
@words.sort{|a,b| (a[1]<=>b[1]) * -1}[0, @cap_at].each { |elem|
percentage = (elem[1].to_f / @total_words_processed) * 100
ret_str << "#{elem[0]} = #{elem[1].to_s} (#{percentage.round(2).to_s}%)\n"
#my code goes here
f.print "[#{elem[0].to_json},#{elem[1].to_json}]"
if (elem != elem.last)
f.print ",\n"
else f.print "]"
end
#and ends here
}
#f.print "]\n"
f.close
我在
[“bank123”,2],
中有一个额外的逗号,结尾缺少一个结束括号]
。我尝试了多个循环和条件,但没有成功。您想序列化数组数组。我们给您提供了一个JSON示例,所以问题是,您需要生成什么结构才能传递给序列化程序以获得所需的结果:
require 'json'
foo = JSON[
'[["patches90",35],
["Champions17",32],
["scotty1977",29],
["Kiddos08",25],
["holidays2016",21],
["scott26me",17],
["People1123@",13],
["Software0)",9],
["Artistic104",5],
["bank123",2]]'
]
此时,foo
是等效对象:
foo
# => [["patches90", 35],
# ["Champions17", 32],
# ["scotty1977", 29],
# ["Kiddos08", 25],
# ["holidays2016", 21],
# ["scott26me", 17],
# ["People1123@", 13],
# ["Software0)", 9],
# ["Artistic104", 5],
# ["bank123", 2]]
(在本例中,解析的对象看起来像原始JSON字符串,但并不总是如此。)
您可以通过从Ruby对象开始并尝试序列化它来测试这一点:
require 'json'
foo = [
['a', 1],
['b', 2]
]
puts JSON[foo]
# >> [["a",1],["b",2]]
因此,构建一个包含两个元素数组的数组,并将其传递给JSON并保存输出。我通常会使用以下内容:
File.write('foo.json', JSON[foo])
这种策略可以很容易地将任何JSON API响应分解为Ruby对象,并可能对其进行修改和重新序列化:
foo = JSON['{"a":1,"b":2}'] # => {"a"=>1, "b"=>2}
foo['c'] = 4
puts JSON[foo]
# >> {"a":1,"b":2,"c":4}
简而言之,使用现有的经过良好测试的控制盘。我很确定,如果您准备好数组,请调用
。\u json
并进行渲染,chart js会很好地接受它。@SergioTulentsev您能告诉我那会是什么样子吗?我可以,如果您发布@SergioTulentsev我编辑了原始问题,这就是你要找的吗?抱歉,再一次,我对这一切都是新手。顺便说一句,把大问题分解成更小的、孤立的子问题的能力是程序员的一项基本技能。没有它,除了最简单的东西(不足以保证分解)之外,你无法构建任何东西。
foo = JSON['{"a":1,"b":2}'] # => {"a"=>1, "b"=>2}
foo['c'] = 4
puts JSON[foo]
# >> {"a":1,"b":2,"c":4}