Python从Geojson获取值

Python从Geojson获取值,python,json,geojson,Python,Json,Geojson,请有人分享一些python脚本,该脚本将循环使用此geojson并检索“附件”下的值。我正在努力解决这些问题 多谢各位 { "id": 3, "geom": "POINT (-65621.7187500000000000 6688807.5000000000000000)", "fields": { "Identifier": null, "Species": null, "Tag_Number": "Quercus robur 505", }, "extensions": {

请有人分享一些python脚本,该脚本将循环使用此geojson并检索“附件”下的值。我正在努力解决这些问题

多谢各位

{
 "id": 3,
 "geom": "POINT (-65621.7187500000000000 6688807.5000000000000000)",
 "fields": {
  "Identifier": null,
  "Species": null,
  "Tag_Number": "Quercus robur 505",
},
"extensions": {
"description": null,
"attachment": [
  {
    "id": 7,
    "name": "1531402833735.jpg",
    "size": 4559151,
    "mime_type": "image/jpeg",
    "description": "",
    "is_image": true
  },
  {
    "id": 8,
    "name": "1531402882838.jpg",
    "size": 6418150,
    "mime_type": "image/jpeg",
    "description": "",
    "is_image": true
  }
]
}
}

请尝试下面的代码

 import geojson
 gj = geojson.loads(jsonstr)
 if "attachment" in gj:
     for attachment in gj["attachment"]:
        print (attachment)

您提供的示例json对我来说似乎无效。您可以找到不那么严格的解析器,但例如“Tag_Number”行末尾的逗号(“,”)不应该在那里,我希望找到定义任何几何体或特征的“type”属性

除此之外,geojson为json添加了语义含义,因此您可以将其视为Python中的任何json解析任务

如果数据位于文件
sample.geojson
中,则可以使用
load()
方法从文件中读取:

import json

with open('sample.geojson') as data:
    geo = json.load(data)
这导致
geo
成为您可以检查的常规产品。通过调用
geo.keys()
可以找到数据中的所有键

In [4]: geo.keys()
Out[4]: [u'fields', u'geom', u'extensions', u'id']
通过指定键:
geo['extensions']
,可以像访问任何Python字典一样访问任何值

In [5]: geo['extensions']
Out[5]:
{u'attachment': [{u'description': u'',
   u'id': 7,
   u'is_image': True,
   u'mime_type': u'image/jpeg',
   u'name': u'1531402833735.jpg',
   u'size': 4559151},
  {u'description': u'',
   u'id': 8,
   u'is_image': True,
   u'mime_type': u'image/jpeg',
   u'name': u'1531402882838.jpg',
   u'size': 6418150}],
 u'description': None}
因为,
扩展本身就是一个字典,所以您也可以引用它并循环任何碰巧是字典列表的值

In [6]: for item in geo['extensions']['attachment']:
    ...:     print(item['name'])
    ...:
1531402833735.jpg
1531402882838.jpg

在学习使用Python处理数据和数据结构时,您可能会发现一个有用的交互式工具。

Python JSON包可以轻松地将JSON转换为dict。感谢您的帮助。我试过了,但什么也没回。如果我将“附件”更改为“扩展”,我会得到响应。就像它看不见里面一样。。。。