我写这段代码是为了解析JSON,在某种程度上它很好。它只会停止在文件中生成部分输出。我做了len(data),它返回了6,这是它返回的项数。但当我生成数据时,所有7000+行都会打印出来。那么如何更改此代码,使其遍历整个文件?另外,如何从“路径”列表中返回最小和最大坐标?在
import os
import json
import pprint as p
def jSonYield():
n = 0
os.chdir('C:\Users\U2970\Documents\ArcGIS')
with open('new_corrs_shapy_FeaturesToJS.json') as datafile:
data = json.loads(datafile.read())
datafile.close()
for line in data:
n = n + 1
corr = data['features'][n]['attributes']['CORRIDOR_C']
trf = data['features'][n]['attributes']['TRFPOST']
frf = data['features'][n]['attributes']['FRFPOST']
coords = data['features'][n]['geometry']['paths']
yield corr,frf,trf,coords
gen = jSonYield()
for line in gen:
p.pprint(line)
以下是JSON数据的示例:
^{pr2}$
因此,回顾一下这些评论:
第一个问题:
data
是一个有键的字典,而不是“行”。在另外,如果使用
with open() as datafile:
,则不需要datafile.close()
。这在with
缩进之外自动发生。在为了迭代字典中的所有键和值(这就是
^{pr2}$data
)的含义,您需要执行以下操作不确定什么是{{CD6}},但是如果对你有用的话,那就太好了!在
相关问题 更多 >
编程相关推荐