Python 从包含多个json对象的json文件中获取值

Python 从包含多个json对象的json文件中获取值,python,json,geojson,Python,Json,Geojson,我不熟悉python和json,我试图为存储的每个对象获取一个特定的值。我正在尝试打印“NAME”和“OBJECTID”下的所有属性存储。我该怎么做?我一直在寻找不同的答案,但我仍然感到困惑。(编辑:整个文件中的大多数对象都有不同的名称,我的目标是创建所有名称的列表。) 这是我正在使用的文件的一个小示例。 谢谢你的帮助 {"type":"FeatureCollection", "features": [ {"type":"Feature","geometry":{"type":"Poly

我不熟悉python和json,我试图为存储的每个对象获取一个特定的值。我正在尝试打印“NAME”和“OBJECTID”下的所有属性存储。我该怎么做?我一直在寻找不同的答案,但我仍然感到困惑。(编辑:整个文件中的大多数对象都有不同的名称,我的目标是创建所有名称的列表。) 这是我正在使用的文件的一个小示例。 谢谢你的帮助

    {"type":"FeatureCollection", "features": [
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[552346.2856999999,380222.8998000007]]]]},"properties":{"OBJECTID":1,"STFID":"55001442500001","NAME":"0001"}},
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[529754.7249999996,409135.9135999996],[529740.0305000003,408420.03810000047]]]},"properties":{"OBJECTID":2,"STFID":"55001537250001","NAME":"0001","COUSUBFP":"53725"}},
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[508795.9363000002,441655.3672000002],[508813.49899999984,441181.034]]]},"properties":{"OBJECTID":6278,"STFID":"55141885750001","NAME":"0001","COUSUBFP":"88575"}}
]}

假设您的json是

json = {"type": "FeatureCollection", 
        "features": [
            {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[552346.2856999999,380222.8998000007]]]},"properties":{"OBJECTID":1,"STFID":"55001442500001","NAME":"0001"}},
            {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[529754.7249999996,409135.9135999996],[529740.0305000003,408420.03810000047]]]},"properties":{"OBJECTID":2,"STFID":"55001537250001","NAME":"0001","COUSUBFP":"53725"}},
            {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[508795.9363000002,441655.3672000002],[508813.49899999984,441181.034]]]},"properties":"OBJECTID":6278,"STFID":"55141885750001","NAME":"0001","COUSUBFP":"88575"}}
            ]}
您可以使用如下列表理解来获取具有OBJECTID、NAME的元组列表:

oid_name = [(feature['properties']['OBJECTID'], feature['properties']['NAME']) for feature in json['features']]
>>> names[1]
'0001'
这将评估

[(1, '0001'), (2, '0001'), (6278, '0001')]
在这个例子中

如果您需要查找对象的名称,您可能会发现使用字典更有用:

names = {feature['properties']['OBJECTID']: feature['properties']['NAME'] for feature in json['features']}
这将允许您按如下方式查找名称:

oid_name = [(feature['properties']['OBJECTID'], feature['properties']['NAME']) for feature in json['features']]
>>> names[1]
'0001'

您是否介意只发布相关的json,或者发布json的较小样本,而不是整个文件?这很难理解。谢谢:)不清楚“属性存储在‘名称’下”是什么意思。json数据确实有一些键,比如
“NAME”:“0001”
,但我不知道这与这个问题有什么关系,如果有的话。对不起,我没有解释我自己。这个.json文件包含一个辖区列表(每行包含一个辖区),每个辖区都有一个“NAME”键,我要做的就是打印0001,依此类推每个对象的所有“NAME”。我希望这能澄清一切up@YangK很抱歉,我删除了大部分我不需要的文件,我希望这能让事情变得更清楚:)谢谢你的帮助!