0
我有一個應用程序,其中嵌套的Python字典是基於作爲API響應獲得的JSON文檔創建的。例如:根據yaml配置驗證對象值
colleagues = [
{ "name": "John",
"skills": ["python", "java", "scala"],
"job": "developer"
},
{ "name": "George",
"skills": ["c", "go", "nodejs"],
"job": "developer"
}]
此字典可以有更多的嵌套級別。 我想要做的是讓用戶在YAML配置文件中定義他們自己的任意條件(例如,爲了找到在他們的技能中具有「python」或其名稱爲「John」的同事),我將使用它檢查Python字典。
我想過讓他們配置在YAML文件中的以下方式,但這需要使用exec()
,我想避免因安全原因:
constraints:
- "python" in colleagues[x]["skills"]
- colleagues[x]["name"] == "John"
其他選項是有這樣的什麼一個問題,以便用戶可以爲字典值指定自己的約束?再一次,上面的字典只是一個例子。實際的尺寸和嵌套級別要大得多。
是否有可能使用提取的JSON創建基於該樹的樹,然後使用類似'「skill:python」'和'「name:John」'的查詢來查詢樹?我只是想確保手動創建樹不會有任何開銷。 –
是的,使用Python的'json'模塊將樹轉換爲一個字典列表,然後使用您在查詢中創建的謂詞函數篩選出您想要的字典。 – PaulMcG