本体:
クラスjson_search():
'' '递归查询依赖キー' ''
デフ検索キー(自己、データ、キー):
self.data =データ
self.key_value = []
self.data_json(データ)の場合=偽:!
self.search (self.data、キー)
self.key_value戻る
:他に
はFalseを返す
(自己、データ)デフdata_jsonを:
'' ' ''参判断入り'
'' '' JSON是STR子类''
の場合でisinstance(データ、STR) :
試す:
self.data = json.loads(データ、エンコード= 'UTF-8')
とValueError除く:
印刷( "値誤差入力")
Falseを返します)
ELIFのでisinstance(データ、辞書)。
self.data返す
:他に
Falseを返し
デフ検索(自己、データ、キー):
私のためのデータに:
もし私==キー:
self.key_value.append(データ[i])と
のelifのでisinstance(データ[i]は、辞書) :
self.key_value.append(データ[I]に.get(キー))
ELIFのでisinstance(データ[i]が、リスト):
データにおけるjに対する[I]:
self.search(Jキー)
リターンself.key_value
示例:
search_json = json_search()
データ= {
"API3 / getbanneradvertver2":[
{ "10016": "トークンエラー"}、
{ "1006": "ユーザ名エラー"}、
{ "1006": "パスワード"}、
{ "1000": "成功"}
]、
" API3 / beta4 ":[
{" 1006 ":"成功着陸"}、
{" 1006 ":"ユーザー名エラー"}、
{" 1006 ":"間違ったパスワード"}
]、
" API3 / getcourseintro ":[
{" 1006 ":"エラートークン"}、
{" 1006 ":2022}、
{" 10001 ":"ユーザ名エラー"}、
{" 10002 ":[{" 100092 ":" 9 "}]
}
]、
"/ API3 / getads":[
{ "1000": "成功"}
]
}
もし__name__ == "__main__":
プリント(search_json.search_key(データ、 "1000"))