【问题标题】:Printing to file from Ruby pp从 Ruby pp 打印到文件
【发布时间】:2013-10-01 21:47:27
【问题描述】:

我正在用 Ruby 解析一个 JSON 文件,并希望使用 pp 将结果输出到一个文件中。我怎样才能做到这一点?这是我正在尝试的代码:

require 'rubygems'
require 'json'
require 'pp'

json = File.read('players.json')
plyrs = JSON.parse(json)

File.open('plyrs.txt', 'a') { |fo| pp page, fo }

【问题讨论】:

  • 当你运行这段代码时会发生什么?
  • plyrs.txt 已创建,但内容只有一个单词:'main'
  • pretty print to a file in ruby 的可能重复项

标签: ruby pretty-print


【解决方案1】:

require "rubygems" 在 Ruby >= 1.9 中是多余的。

require "json"
require "pp"

plyrs = JSON.load("players.json")
File.open("plyrs.txt", "a"){|io| io.write(plyrs.pretty_inspect)}

【讨论】:

  • 返回:/Users/name/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/json/common.rb:146:in parse': 710: unexpected token at 'players.json' (JSON::ParserError) from /Users/name/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/json/common.rb:146:in parse ' 来自 /Users/name/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/json/common.rb:294:in load' from print_players.rb:32:in
    '
【解决方案2】:

试试这个

require 'rubygems'
require 'json'
require 'pp'

json = File.read('players.json')
plyrs = JSON.parse(json)

File.open('plyrs.txt', 'a') { |file| file.write(pp plyrs) }

更多信息请访问ruby documentation

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 2023-02-24
    • 1970-01-01
    相关资源
    最近更新 更多