【发布时间】:2015-08-05 15:50:04
【问题描述】:
我在一家公司实习,得到了以下指示:
“您将在文本文件 (students.json) 中找到学生记录 - 一个 每行学生。编写程序计算平均成绩 班级。”
有问题的学生文件是一个带有 .txt 扩展名的要点,这是内容的一个示例:
{"first name": "mary", "last name": "roberts", "grade": 78}
{"first name": "jason", "last name": "mchale", "grade": 82}
{"first name": "ciaron", "last name": "smith", "grade": 63}
{"first name": "sarah", "last name": "johnson", "grade": 91}
这是我第一次使用 JSON,所以我想我需要将它转换为哈希或其他东西,以便我可以更轻松地处理数据。
我尝试使用以下方法:
require 'json'
def distance
file = File.open("students.txt", "r")
students = ""
file.each do |line|
students << line
end
file.close
puts JSON.parse(students)
end
但我得到了错误:
JSON::ParserError: 757: unexpected token at '{"first name": "mary", "last name": "roberts", "grade": 78}
{"first name": "jason", "last name": "mchale", "grade": 82}...
我查看了this question,它表明我实际上没有 JSON,而是写为字符串的哈希。不幸运行
hash.eval(students)
只给我第一个学生记录,而不是其余的。我对我实际使用的内容有点困惑,它是纯文本文件,作为字符串的哈希还是错误文件格式的 JSON?如果有人能指出我提取这些数据的正确方向以便我可以使用它,我将永远感激不尽!
【问题讨论】: