python – 在JSON中到达未知值后面的字符串
发布时间:2020-12-20 11:31:26 所属栏目:Python 来源:网络整理
导读:我使用维基百科的API来获取有关页面的信息. API给了我这样的 JSON: "query":{ "pages":{ "188791":{ "pageid":188791,"ns":0,"title":"Vanitu00e9","langlinks":[ { "lang":"bg","*":"Vanitas" },{ "lang":"ca",ETC. } } }} 你可以看到the full JSON respo
我使用维基百科的API来获取有关页面的信息.
API给了我这样的 JSON: "query":{ "pages":{ "188791":{ "pageid":188791,"ns":0,"title":"Vanitu00e9","langlinks":[ { "lang":"bg","*":"Vanitas" },{ "lang":"ca",ETC. } } } } 你可以看到the full JSON response. 我想获得所有条目,如: { "lang":"ca","*":"Vanitas" } 但是页面对象中的数字键(“188791”)是问题所在. 我发现Find a value within nested json dictionary in python解释了我如何枚举值. 不幸的是我得到以下异常: TypeError: 'dict_values' object does not support indexing 我的代码是: json["query"]["pages"].values()[0]["langlinks"] 这可能是一个愚蠢的问题,但我找不到传递页面id值的方法. 解决方法
只要您一次只查询一个页面,Simeon Visser’s answer就可以正常工作.但是,作为一个好的风格,我建议您构建代码,以便迭代所有返回的结果,即使您知道应该只有一个:
for page in data["query"]["pages"].values(): title = page["title"] langlinks = page["langlinks"] # do something with langlinks... 特别是,通过这种方式编写代码,如果您发现自己需要为多个页面运行查询,则可以使用单个MediaWiki API请求高效地执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |