Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无效的GeoJson(数据不可JSON序列化)_Python_Json_Geojson - Fatal编程技术网

Python 无效的GeoJson(数据不可JSON序列化)

Python 无效的GeoJson(数据不可JSON序列化),python,json,geojson,Python,Json,Geojson,我对…还是一个新手,格式化正在引起havok 我所要做的就是建立一个新的“功能”列表(仅针对点),并为其添加新的“属性”。然后我将其写入(test.json) 现在我返回的是有间歇性的“type”:“FeatureCollection”(我只希望在文件顶部看到一次)和一些错误的}语法错误: {"type": "FeatureCollection", "features": [ {"geometry": { "type": "Point", "coordinates": [-122.34470

我对…还是一个新手,格式化正在引起havok

我所要做的就是建立一个新的“功能”列表(仅针对点),并为其添加新的“属性”。然后我将其写入(test.json)

现在我返回的是有间歇性的
“type”:“FeatureCollection”
(我只希望在文件顶部看到一次)和一些错误的}语法错误:

{"type": "FeatureCollection", 
"features": [
{"geometry": {
"type": "Point", 
"coordinates": [-122.3447075, 47.6821492]}, 
"type": "Feature", 
"properties": {
"marker-color": "#808080", 
"timestamp": "2013-08-17T22:41:18Z", 
"version": 3, 
"user": "seattlefyi", 
"last_updated": "over a year ago", 
"id": 427307160, 
"marker-size": "small"
}}, ## what??
]} ## what??
{"type": "FeatureCollection",  
"features": [
{"geometry": {
"type": "Point", 
"coordinates": [-122.3447075, 47.6821492]}, 
"type": "Feature", 
"properties": {
"marker-color": "#808080", 
"timestamp": "2013-08-17T22:41:18Z", 
"version": 3, 
"user": "seattlefyi", 
"last_updated": "over a year ago", 
"id": 427307160, 
"marker-size": "small"
}}, ## what...no "type": "FeatureCollection" on this one?
{"geometry": {
"type": "Point", 
"coordinates": [-122.377932, 47.5641566]}, 
"type": "Feature", 
"properties": {
"marker-color": "#808080", 
"timestamp": "2009-07-11T04:04:51Z", 
"version": 1, 
"user": "Rob Lanphier", 
"last_updated": "over a year ago", 
"id": 439976119, 
"marker-size": "small"
}
}
]
}
然而,我正试图回来

{"type": "FeatureCollection", 
"features": [
{"type": "Feature", 
"geometry": {
"type": "Point", 
"coordinates": [-122.3447075, 47.6821492]}, 
"properties": {
"marker-color": "#808080", 
"timestamp": "2013-08-17T22:41:18Z", 
"version": 3, 
"user": "ralph", 
"last_updated": "over a year ago", 
"id": 427307160, 
"marker-size": "small"
}},
{"type": "Feature", 
"geometry": {
"type": "Point", 
"coordinates": [-122.377932, 47.5641566]}, 
"properties": {
"marker-color": "#808080", 
"timestamp": "2009-07-11T04:04:51Z", 
"version": 1, 
"user": "Rob Lanphier", 
"last_updated": "over a year ago", 
"id": 439976119, 
"marker-size": "small"
}
}
]
}
代码是:

def write_to_features(source, class_time, color):
    """ write the json into geojson
        takes all the items from one node ("lat", "lon", "id", "user", "tags", "timestamp")
        writes all the items with new tags "last_updated","marker-color","marker-size"
        returns a dict
    """



    pt = {
        "type": "Feature",
        "geometry": {
            "type": 'Point',
            "coordinates": [float(source['lon']), float(source['lat'])]
            },
        "properties": {
            "user": source['user'],
            "id": source['id'],
            "version": source['version'],
            "timestamp": source['timestamp'],
            "last_updated": classified_time,
            "marker-color": marker_color,
            "marker-size": "small"
            }
        }

    return pt

    def __main__():

    geojson = { "type": "FeatureCollection", "features": [] }

    outfile = r'.\test.json'

    with open(outfile, 'w') as geojson_file:

        for item in all_data_dict['elements']:
            point_dict = write_to_features(item, data_w_update, data_item_color)
            geojson['features'].append(point_dict)
            json.dump(geojson, geojson_file)

你的
json.dump(geojson,geojson_文件)
不应该在你的循环之外吗?你
append
在它上面的一行..所以我想你为什么要多次转储/写入文件?我想你应该只调用
json.dump
一次。

DOH!(不好意思,我错过了)。谢谢