0
我正在閱讀帶有字典和值的json文件,但是我正在爭取在搜索json文件時使用變量作爲查詢項目。使用預設查詢訪問JSON文件數據 - Python
x = value_cloud = "%s%s%s" % (["L1_METADATA_FILE"],["IMAGE_ATTRIBUTES"],["CLOUD_COVER"])
for meta in filelist(dir):
with open (meta) as data_file:
data = json.load(data_file)
cloud = str(data[x])
我得到的錯誤是:
Traceback (most recent call last):
File "E:\SAMPLE\Sample_Script_AWS\L8_TOA_using_gdal_rasterio.py", line 96, in <module>
cloud = str(data[x])
KeyError: "['L1_METADATA_FILE']['IMAGE_ATTRIBUTES']['CLOUD_COVER']"
什麼其實我想要的是搜索變量中的關鍵JSON文件... 的按鍵都在JSON文件存在,因爲當我運行以下我得到正確的輸出。
cloud = str(data["L1_METADATA_FILE"]["IMAGE_ATTRIBUTES"]["CLOUD_COVER"])
print cloud
我的Python的知識比較粗略,而我傳遞變量通過作爲一個字符串,而不是一個表達式或對象,因此它給我的錯誤。什麼是創建變量並調用我想要的鍵的正確方法。
提前致謝!
只需檢查 - ([「L1_METADATA_FILE」],[「IMAGE_ATTRIBUTES」],[「CLOUD_COVER」])..逗號分隔.. – Harsha
@HarshaBiyani逗號分隔的格式爲「%s%s%s 「%聲明...但我知道它創建了一個字符串,我不認爲這是正確的變量類型... –
您的密鑰最終包括括號中的字符串,這是不好的。你可以直接在自己的變量中使用每個鍵,比如'x,y,z =「L1_METADATA_FILE」,「IMAGE_ATTRIBUTES」,「CLOUD_COVER」',然後'cloud = str(data [x] [y] [z])' ? – coralvanda