代码工作正常,但似乎这条线很难看。
self.data["data"]["someComponent"]["items"][1]["content"]["items"].append(json.load(someVariable))
所以我的问题是: 是否适合python约定的代码? flake8,pylint等..没有出现问题。 也许你有一些重构的新想法?
答案 0 :(得分:3)
对于小型程序或原型来说很好,但对于大型复杂的项目来说这是不好的。
如果是长行,您可以使用\
移动到下一行(但是flake8会在[
之前发出有关空格的警告):
self.data \
["data"] \
["someComponent"] \
["items"] \
[1] \
["content"] \
["items"].append(json.load(someVariable))
在严肃的项目中,您应该使用其他数据结构。例如,不同类的对象的组合,形成您需要的树。
为词典结构中的每个实体创建一个类。例如,Data
类,其中包含字段someComponent
,例如someOtherComponent
。创建类Component
,其中包含字段items
作为列表或使Component
可迭代(定义方法__iter__()
和可选方法__getitem__(index)
)。等等。并访问它的字段:
self.data.someComponent[1].content.append(myNewContentElement)
要从json获取myNewContentElement
,您可以创建函数,该函数接受加载的JSON结构并为您返回ContentElement
对象。