将geojson值插入postgres表时缺少值

时间:2017-12-06 02:05:51

标签: python postgresql gis geojson

我正在尝试读取geojson文件并将记录插入到postgres表中 - 使用下面的python代码。

import json
import psycopg2
conn = psycopg2.connect(host="<<ip_address>>",database="DB1", user="<<id>>", password="pwd")
cur = conn.cursor()
with open('NTA_shape.json') as f:
Geojson_data = json.load(f)
for feature in Geojson_data['features']:   
    type_val=feature['geometry']['type']
    geom=feature['geometry']['coordinates']
    ntaname=feature['properties']['NTAName']
    boroname=feature['properties']['BoroName']
    data = {"type":type_val,"coordinates":geom}
    sql ="""Insert into <<Table_NAME> (geom,ntaname,boroname) VALUES(ST_GeomFromGeoJSON(%s),%s,%s)""" 
    nta_boro=(json.dumps(data),ntaname,boroname)
    cur.execute(sql,nta_boro)
    conn.commit()
conn.close()

但是当我查询表时,很多记录都丢失了。 如果我打印json.dumps(data)变量 - 它显示所有记录。

我不确定,在插入表格时我缺少什么 请帮助。

1 个答案:

答案 0 :(得分:0)

我能够解决以下变化

nta_boro=(json.dumps(data,),ntaname,boroname)