也许这是一个常见问题,但我是Python新手!
我正在开发一些处理 json 查询的库,并问自己是否有一些最佳实践来避免对大量 json 键进行硬编码,例如:
# just an example..
var1 = response.json()["ACRI"]["message"]["title"]
var2 = response.json()["ACRI"]["message"]["content"]
var3 = response.json()["ACRI"]["message"]["meta"]["timestamp"]
当我看到它时,它不喜欢我,我创建了一个带有如下常量的类:
class _const:
class headers:
X_Auth_Token = "X-Auth-Token"
X_Username = 'X-Username'
X_Password = 'X-Password'
class params:
ID = "DocumentID"
Symbols = "Symbols"
ACRICode = "ACRICode"rketSegmentID"
entries = "entries"
depth = "depth"
date = "date"
meta = "meta"
timestamp = "timestamp"
message = "message"
# ...
这是一个好的做法吗?关于 python 编译器有什么我不明白的地方吗?
谢谢
编辑:我尤其面临性能和/或内存消耗最佳实践
最佳答案
性能应该是您最不关心的问题,可维护性更重要。对字符串使用符号名称的一个很好的理由是你不能那么容易地拼写它,参见
KEY_SYMBOLS = "Symbols"
foo[KEY_SYMOBLS]
对比
foo["Symobls"]
IDE 或 linter 甚至可以在运行代码之前找到前一个拼写错误并突出显示它,但后者不太可能。
就性能而言,性能最高的 Python 代码是不在变量中存储字符串的代码。编译后,同一模块中同一字符串的不同用途将被合并以仅引用一个字符串常量:
>>> 'foo' is 'foo'
True
不过,切普纳的回答中提出的观点仍然存在:不必要时,您无需从根解析子词典。
关于python - 如何避免在 Python 中对大量 dict 键字符串进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55985878/