Gis JSON metedata文件写入嵌套浮动到.txt或.csv

Gis JSON metedata文件写入嵌套浮动到.txt或.csv,gis,Gis,对于python来说非常陌生,所以如果这是一个愚蠢的问题,请原谅我,但我一直在尝试循环提取.json文件中的某些信息(特别是日期和一个值),以便创建时间序列。由于我有超过300个文件,我希望这是自动完成的,以便轻松地创建一个特定值的时间序列。我已设法打印数据,但未能将这些信息提取到文本文件中,该文件在excel之类的文件中可读 请查看附件中我试图提取的example.json文件和我的代码。谢谢 { “AcquasitionInfo”:{ “日期”:{ “天”:27, “月”:3, “年度”:2

对于python来说非常陌生,所以如果这是一个愚蠢的问题,请原谅我,但我一直在尝试循环提取.json文件中的某些信息(特别是日期和一个值),以便创建时间序列。由于我有超过300个文件,我希望这是自动完成的,以便轻松地创建一个特定值的时间序列。我已设法打印数据,但未能将这些信息提取到文本文件中,该文件在excel之类的文件中可读

请查看附件中我试图提取的example.json文件和我的代码。谢谢

{ “AcquasitionInfo”:{ “日期”:{ “天”:27, “月”:3, “年度”:2011年 }, “地球距离”:0.9977766, “SolarAzimuth”:154.94013617, “太阳天顶”:53.1387049, “时间”:{ “小时”:11, “分钟”:0, “第二”:21 }, “传感器方位”:0.0, “传感器天顶”:0.0 }, “文件信息”:{ “云掩码”:“LS5TM_20110327_lat53lon354_r23p204_clouds.kea”, “FileBaseName”:“LS5TM_20110327_lat53lon354_r23p204”, “影像数据”:“LS5TM\U 20110327\U LAT53PLON354\U r23p204\U DEM.kea”, “元数据”:“LS5TM_20110327_lat53lon354_r23p204_meta.json”, “提供元数据”:“LT05\u L1TP\u 204023\u 20110327\u 20161208\u 01\u T1\u MTL.txt”, “辐射度”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_mclds_rad.kea”, “整体辐射”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_rad.kea”, “SREF 6S IMG”:“LS5TM\U 20110327\U lat53lon354\U r23p204\U vmsk\U mclds\U topshad\u rad\u srefdem.kea”, “STD_SREF_IMG”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_mclds_topshad_rad_srefdem_stdsref.kea”, “THERMAL_BRIGHT”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_thrad_Thermabright.kea”, “THERMAL_BRIGHT_Total”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_thrad_Thermalbright.kea”, “THERM_RADIANCE_WHOLE”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_thermrad.kea”, “TOA”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_mclds_rad_TOA.kea”, “TOA_整体”:“LS5TM_20110327_lat53lon354_r23p204_vmsk_rad_TOA.kea”, “TOPO_SHADOW_MASK”:“LS5TM_20110327_lat53lon354_r23p204_toposhad.kea”, “有效屏蔽”:“LS5TM\U 20110327\U LAT53PLON354\U r23p204\U VALID.kea”, “视角”:“LS5TM_20110327_lat53lon354_r23p204_视角.kea” }, “图像信息”:{ “CellSizeRefl”:30.0, “CellSizeTM”:30.0, “云量覆盖”:52.0, “云层覆盖地”:79.0 }, “位置信息”:{ “地理”:{ “BBOX”:{ “BLLat”:52.06993, “BLLon”:-5.34028, “BRLat”:52.08621, “BRLon”:-1.72003, “TLLat”:54.09075, “TLLon”:-5.45257, “TRLat”:54.10827, “TRLon”:-1.65856 }, “中心”:53.10330325240661, “CentreLon”:-3.5429440927905724 }, “预计”:{ “BBOX”:{ “BLX”:354735.0, “BLY”:5776815.0, “BRX”:572985.0, “BRY”:5776815.0, “TLX”:354735.0, “TLY”:5992035.0, “TRX”:572985.0, “尝试”:5992035.0 }, “CentreX”:463860.0, “CentreY”:5884425.0, “VPOLY”:{ “MaxXX”:572985.0, “MaxXY”:5950185.0, “MaxYX”:405795.0, “MaxYY”:5992035.0, “MinXX”:354735.0, “MinXY”:5819025.0, “MinYX”:521775.0, “MinYY”:5776815.0 } } }, “产品信息”:{ “ARCSIProducts”:[ “云”, “Dosaosgl”, “STDSREF”, “元数据” ], “ARCSI_AOT_范围_最大值”:0.5, “ARCSI\u AOT\u范围最小值”:0.05, “ARCSI_AOT_值”:0.5, “ARCSI_云覆盖率”:0.627807080745697, “ARCSI\U LUT\U高程最大值”:1100, “ARCSI\u LUT\u标高\u最小值”:-100, “处理日期”:{ “天”:11, “月”:7, “年份”:2018年 }, “处理时间”:{ “小时”:7, “分钟”:24, “第二”:55 } }, “传感器信息”:{ “ARCSISensorName”:“LS5TM”, “路径”:204, “世界其他地区”:23, “传感器ID”:“TM”, “SpacecraftID”:“陆地卫星5号” }, “软件信息”:{ “名称”:“ARCSI”, “URL”:“, “版本”:“3.1.4” }}


您忘记了最后一行中的
数据

import glob
import json
jsonfile = glob.glob('*.json')
with open(jsonfile[0]) as f:
        data = json.load(f)
print(data["AcquasitionInfo"]["Date"]["Day"])
print(data["AcquasitionInfo"]["Date"]["Month"])
print(data["AcquasitionInfo"]["Date"]["Year"])
print(data["ProductsInfo"]["ARCSI_AOT_VALUE"])
with open('data.txt', 'w') as outfile:
     json.dump(data["ProductsInfo"]["ARCSI_AOT_VALUE"], outfile)
编辑:

您可以这样做:

import json
import os

for file in os.listdir("."):
    if file.endswith(".json"):
        with open(file) as f:
            data = json.load(f)
            with open('data.txt', 'a') as outfile:
                json.dump(data["ProductsInfo"]["ARCSI_AOT_VALUE"], outfile)
                outfile.write(';')

谢谢,这是一个问题。我现在试图使目录中的所有.json文件在“for”循环中运行此过程,将每个文件的特定信息添加到同一输出文本文件中。任何帮助都将不胜感激!
import json
import os

for file in os.listdir("."):
    if file.endswith(".json"):
        with open(file) as f:
            data = json.load(f)
            with open('data.txt', 'a') as outfile:
                json.dump(data["ProductsInfo"]["ARCSI_AOT_VALUE"], outfile)
                outfile.write(';')