julia JSON.parse丢失类型信息

时间:2015-05-31 05:13:44

标签: json types julia

我刚开始学习朱莉娅,但我有这个问题:

我正在尝试使用julia的JSON.parse来解析矩阵(坐标列表),但它正在丢失类型信息。

coords = JSON.parse("[[1.0,-2.0],[3.0,4.0],[5.0,-1.2]]")

它返回Any类型而不是Float类型:

3-element Array{Any,1}:
 {1.0,-2.0}
 {3.0,4.0} 
 {5.0,-1.2}

我如何获得(或将其转换为)浮动数组?

修改 这是一个更大的问题:

taxi_df = readtable("./test.csv")
coords = [JSON.parse(x) for x in taxi_df[:POLYLINE]]
times = [float(length(x)*15) for x in coords]
df_submission = DataFrame()
df_submission[:TRIP_ID] = taxi_df[:TRIP_ID]
mean_time = mean(times)
df_submission[:TRAVEL_TIME] = [max(x, mean_time) for x in times]
writetable("submission.csv", df_submission)

1 个答案:

答案 0 :(得分:2)

我认为它首先是这样做的,因为该数据是JSON中的列表列表,因此它无法转换为矩阵。

你可以做到

float(hcat(coords...))

如果是列,或

float(hcat(coords...))'

如果它们是行。如果效率对于此代码至关重要,也可以预先分配输出矩阵并使用for循环,例如

A = zeros(3,2)
for i in 1:3, j in 1:2
  @inbounds A[i,j] = coords[i][j]
end