【问题标题】:convert whole csv to json file- python将整个 csv 转换为 json 文件-python
【发布时间】:2015-05-08 21:17:10
【问题描述】:

以下代码在执行时不会给我任何错误。但是,当我将文件拖放到 url:geojson.io 中时,我得到以下“无效的 Json 文件:语法错误意外令牌”。

#!/usr/bin/python

import csv
import json
import geojson

csvfile = open('May_6th.csv', 'rU')
jsonfile = open('file.json', 'w')

fieldnames = {'type': 'FeatureCollection',
        'features':[("Name","Bearing (True)","Bearing (Mag)",
"Distance","Total Distance","Planned Speed", 
"Leg Time", "Total Time", "Turn", "Latitude", "Longitude")]}

reader = csv.DictReader( csvfile, fieldnames)



for row in reader:
    json.dump(row, jsonfile)
    jsonfile.write('\n')
print 'csv file converted'

【问题讨论】:

  • 当我编辑脚本时,我只会在 python 中执行脚本时得到额外的错误。
  • “将文件拖放到 url:geojson.io”是什么意思?您是说您试图将此代码粘贴到该网页的输入框中吗?这没有任何意义。你写的是 Python 代码,它不是 geojson,所以你不能把它粘贴到需要 geojson 的地方。你想做什么?
  • 你为什么是jsonfile.write('\n')
  • BrenBarn- 您可以将 *.json 扩展文件放入 geojson.io。我已经在一个 python 类中这样做了——脚本是用 python 编写的。我的目标是与我的 csv 文件的 lat 和 longs 相同。

标签: python json csv geojson


【解决方案1】:

按照大多数约定,一个 JSON 文件代表一个 javascript 对象。您的文件是一系列对象,由换行符分隔。您正在创建的内容有时称为JSRec

更重要的是,没有迹象表明您正在制作有效的 geojson。您导入库但不使用它。您可能应该查看https://github.com/frewsxcv/python-geojsonGeoJSON format specification 的文档,以确保您创建的文件符合GeoJSON 格式。

我注意到 GeoJSON 规范特别指出:

GeoJSON 始终由单个对象组成。此对象(以下称为 GeoJSON 对象)表示几何、特征或特征集合。

【讨论】:

  • 您似乎可以将 json 粘贴到 geojson.io 中,因此可能不需要 geojson。
  • 我会在没有geojson的情况下尝试它。但是乔几何是一个多线字符串(因为我想将所有点连接成一个“轨迹线”,我的特征是名称,我剩下的列是:方位角(真),方位角(Mag),距离,总距离, 计划速度, 行程时间, 总时间, 转弯, 纬度, 经度. 所有这些都是 FeatureCollection (没有纬度和经度)....????
  • 示例数据:名称|方位 (True)|方位 (Mag)|距离|总距离|计划速度|行程时间|总时间|转弯|纬度|经度2 244.115796 228.012487 0.069682 0.069682 8.5 30 30 69 47.648986 -122.314021
  • @darcye 老实说,我自己还没有从原始数据构建geojson;我只用它作为 GIS 工具的输出。最好查阅文档。或者,也许其他人会写一个更完整的答案。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 2018-07-14
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多