【发布时间】:2019-08-14 22:04:01
【问题描述】:
我需要从 100 个或 1000 个 .json 文件(我不熟悉,也无法控制它们的创建)中提取一个浮点数,然后在我的代码中使用它们。缩写名称的相关摘录:
...
"a": {
"b": {
"variable_name": {
"known_key": 133.2982,
...
在“a”、“b”和“known_key”的同一级别有多个附加键。在访问文件之前,我无法知道“variable_name”是什么,并且无论如何都不需要跟踪它。我确实知道它将是该字典级别的唯一键,并且几乎可以保证它在不同的 .json 文件中不是唯一的。
using this answer 我能够确定我可以通过重复整个字典结构并使用.keys()[0] 来一般地访问“variable_name”键,但感觉应该有更好的方法来做到这一点?
with open("json_file_X.json", "r") as j_in:
data = json.load(j_in)
needed = data["a"]["b"][list(data["a"]["b"].keys())[0]]["known_key"]
#do downstream stuff with needed float value after closing .json file
我知道我可以将以下 2 行 for loop 替换为上面的“需要”行,但这似乎是错误的,因为其他人查看此代码会认为我正在遍历所有键并且只保留最后一个值.
for var_key in data["a"]["b"]:
needed = data["a"]["b"][var_key]["known_key"]
所以这让我对简化[list(data["a"]["b"].keys())[0]] 的方法特别感兴趣,因为我知道该级别只有 1 个键,或者想知道如果我只需要 1 个,我的 .json 文件结构是否完全错误整个文件中的值。
【问题讨论】:
标签: json python-3.x dictionary nested