【问题标题】:Python - Using json to import geojson and printing specific dataPython - 使用 json 导入 geojson 并打印特定数据
【发布时间】:2018-09-26 02:49:21
【问题描述】:
import json 

with open("madagascar.geojson") as f:
    data = json.load(f)

我完全不知道该去哪里。这是我生成的所有代码,因为我是 python 新手。我有一个马达加斯加 geojson 文件,我正在尝试使用 json 读取。完成此操作后,我想使用短语打印出数据集中的第 5 个区域,大意是““第五条记录是针对 X,其面积是 Y 平方公里。”其中 X 是区域名称,Y 是区域。

我该怎么做呢?

GeoJSON 文本文件:https://drive.google.com/file/d/1we40zpuGQICfyTw7YtJ39OY7gtPUQJr7/view?usp=sharing

【问题讨论】:

  • 您应该首先将文件名放在引号中。
  • @KlausD。已更正。
  • 纠正问题中的问题不是一个好主意。这样问题就不再对其他人有帮助,因为他们看不到原件。
  • GeoJSON 文件(或其中的一个示例)对于回答您的问题非常有用(通常它是您必须迭代的功能的集合)。
  • @IonutTicus 我在上面的帖子中添加了 GeoJSON 文件的 sn-p!

标签: python json gis geojson


【解决方案1】:

此代码打印所有条目的名称、区域和区域:

import json 

with open("madagascar.geojson") as f:
    data = json.load(f)

for i in range(len(data["features"])):
    properties = data["features"][i]["properties"]
    print("Record %d: Name %s, Region %s, Area %s sq. km" 
        % (i,properties ["gn_name"], properties ["region_sub"], properties ["areasqkm"]))

这是输出:

【讨论】:

  • 看起来我在尝试运行第 5 条记录的代码时遇到了 KeyError: 8。
  • 第一个有用吗?你能分享一个完整 JSON 的链接吗?
  • 第一个导致类似问题。我在帖子中添加了可下载 txt 文件的链接。
  • 您想要的数据在features 列表中,您可以像data["features"][5]["properties"]["gn_name"]data["features"][5]["properties"]["region_sub"]data["features"][5]["properties"]["areasqkm"] 等一样访问它。
  • 做到了!如果您不介意我问我该怎么做才能让所有区域都打印出类似于我上面打印的声明?
【解决方案2】:

为您的最后一个问题创建答案以便能够发布代码块:

import json
with open("Madagascar.txt") as input_file:
    data = json.load(input_file)
    for feature in data["features"]:
        props = feature["properties"]
        print("Name %s, region %s, area %s" % (props["gn_name"], props["region_sub"], props["areasqkm"]))

如果您刚开始使用 Python,请查看 Dive into Python,这是一个很棒的教程。

【讨论】:

    猜你喜欢
    • 2020-11-25
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多