从JSON键在本地范围内创建命名变量

2024-10-01 00:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法可以从json文件在本地范围内创建命名变量?在

document json

这是我的json文件,我想在本地范围内创建变量,命名为json字典的路径

我就是这样手动创建它们的,我想自动为所有json文件创建它们。有可能吗?在

class board(object):
    def __init__(self, json, image):
        self.json = json
        self.image = image  

    def extract_json(self, *args):
        with open(self.json) as data_file:
            data = json.load(data_file)
            jsonpath_expr = parse(".".join(args))
            return jsonpath_expr.find(data)[0].value    

MyAgonism = board('document.json', './tabellone.jpg')

boxes_time_minutes_coord = MyAgonism.extract_json("boxes", "time_minutes", "coord")
boxes_time_seconds_coord = MyAgonism.extract_json("boxes", "time_seconds", "coord")
boxes_score_home_coord = MyAgonism.extract_json("boxes", "score_home", "coord")

Tags: 文件imageselfboardjsondatatimedef
1条回答
网友
1楼 · 发布于 2024-10-01 00:28:27

我觉得你让这件事复杂得多。在

with open('document.json') as f:
    d = json.load(f)

time_minutes_coords = d['boxes']['time_minutes']['coord']
time_seconds_coords = d['boxes']['time_seconds']['coord']
score_home_coords = d['boxes']['score_home']['coord']

如果您真的想从json文件中的键在本地范围内创建命名变量,可以使用locals()字典(但这是一个糟糕的主意,从json字典引用它们要好得多)。在

^{pr2}$

有很多警告,比如在局部作用域中重写其他变量的可能性,或者在展开后两个字典键可能是相同的,除非您选择一个没有出现在任何字典键中的分隔符。或者,如果键包含变量名的无效字符(例如空格),则这将不起作用。在

相关问题 更多 >