【发布时间】:2017-04-25 10:26:52
【问题描述】:
我有巨大的 json 对象,其中包含我需要转换为 numpy 数组进行处理的 2D 坐标列表。
但是使用json.loads 后跟np.array() 太慢了。
有没有办法提高从 json 创建 numpy 数组的速度?
import json
import numpy as np
json_input = '{"rings" : [[[-8081441.0, 5685214.0], [-8081446.0, 5685216.0], [-8081442.0, 5685219.0], [-8081440.0, 5685211.0], [-8081441.0, 5685214.0]]]}'
dict = json.loads(json_input)
numpy_2d_arrays = [np.array(ring) for ring in dict["rings"]]
我会采取任何解决方案!
【问题讨论】:
-
我收到
json解码器错误:` 文件 "/usr/lib/python3.5,... json.decoder.JSONDecodeError: 期望值:第 1 行第 14 列(字符 13 )` -
@hpaulj 你是对的,它是固定的
-
()是非标准 JSON。 -
其他解析器是
eval和ast.literal_eval(更安全)。在这个小样本上,json.loads明显更快。np.array部分花费的时间更少。