没有JSON对象可以被解码,JvectorMap Converter

时间:2016-08-13 03:56:35

标签: python json windows shapefile jvectormap

情景是,

我是python的新手并尝试使用Converter.py提供的jVectorMap插件生成jvectorMap,

我在Windows 7 64bit上安装了OSGEO4W(Desktop INSTALL)。 Python 2.7,GDAL 2.1.0和Shapely也安装在OSGEO4W下。

我下载shapefile

ne_10m_admin_1_states_provinces.shp

我将此形状文件放在converter.py目录中,然后打开OSGEO4W shell并导航到converter.py目录并运行以下命令生成俄罗斯地图以学习地图转换。

python  converter.py ne_10m_admin_1_states_provinces.shp test-map.js --width 400 --where "ISO_3166_2 = 'RU-' and code_hasc!='' --country_name_index 12 --country_code_index 18 --minimal_area 4000000 --buffer_distance -0.5 --simplify_tolerance 10000 --longitude0 54.8270 --name russia

我从这篇文章中取得了这个命令如何为jvectormap jquery插件生成一个新的地图?但我遇到了错误的JSON对象解码,请看下面的图片 enter image description here

帮助我解决我的问题,正如我已经说过我对python和jvector Maps的新内容

1 个答案:

答案 0 :(得分:0)

我怀疑问题是由于--where末尾缺少双引号,脚本无法将传入的参数转换为JSON。应该是:

--where "ISO_3166_2 = 'RU-' and code_hasc!=''"

修改

事实证明这是一个更大的问题。如果您查看converter.py的源代码,您会发现:

args = {}
if len(sys.argv) > 1:
  paramsJson = open(sys.argv[1], 'r').read()
else:
  paramsJson = sys.stdin.read()
paramsJson = json.loads(paramsJson)

所以,看起来这个脚本不能这样调用。它要么期望带有这个JSON的文件,要么通过stdin传递params。 documentation似乎同意这一点。