【发布时间】:2014-11-23 05:05:49
【问题描述】:
好的...这里对 Ruby 来说是新事物,但到目前为止很喜欢它。我的问题是我无法让数据进入 CSV 文件。
#!/usr/bin/env ruby
require 'date'
require_relative 'amf'
require 'json'
require 'csv'
amf = Amf.new
#This makes it go out 3 days
apps = amf.post( 'Appointments.getBetweenDates',
{ 'startDate' => Date.today, 'endDate' => Date.today + 4 }
)
apps.each do |app|
cor_md_params = { 'appId' => app['appID'], 'relId' => 7 }
cor_md = amf.post( 'Clinicians.getByAppIdAndRelId', cor_md_params ).first
#this is where it breaks ----->
CSV.open("ile.csv", "wb") do |csv|
csv << ["column1", "column2", "etc.", "etc.."]
csv << ([
# if added puts ([ I can display the info and then make a csv...
app['patFirstName'],
app['patMiddleName'],
app['patLastName'],
app['patBirthdate'],
app['patHin'],
app['patPhone'],
app['patCellPhone'],
app['patBusinessPhone'],
app['appTime'],
app['appID'],
app['patPostalCode'],
app['patProvince'],
app['locName'],
# note that this is not exactly accurate for follow-ups,
# where you have to replace the "1" with the actual value
# in weeks, days, months, etc
#app[ 'bookName' ], => not sure this is needed
cor_md['id'],
cor_md['providerCode'],
cor_md['firstName'],
cor_md['lastName']
].join(', '))
end
end
现在,如果我删除创建 ile.cvs 文件的尝试并使用 puts 输出它,所有数据都会显示。但我不想进入终端并创建一个 csv 文件......我宁愿只运行 .rb 程序并创建它。另外,希望我也能正确地制作列......
我想到我可以在输出上方添加另一个 puts。 或者,更好的是,在我输出之前在数组中插入一行...
真的不确定这里的最佳做法和标准是什么。
这是我已经做过和尝试过的。由于我的尝试不起作用,如何让它干净地输出到 CSV 文件
此外,为了澄清它在哪里中断,它确实添加了列名,而不是解析的 JSON 信息。我也可能完全以错误的方式或不可能的方式做到这一点。我就是不知道。
【问题讨论】: