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