arrays - 如何在字典的键中提取键
问题描述
我有以下结构:
mappings": {
"go": {
"_ttl": {something goes here},
"symbol": {},
"associationType.keyword": {},
"go_genes": {},
"go_species.keyword": {},
"symbol.autocomplete": {},
"primaryId": {},
"href.keyword": {},
"name_key": {},
"symbol.sort": {},
"name_key.keyword": {},
"go_type.keyword": {},
现在,我有兴趣提取这样的东西:
mappings.go.-ttl
mappings.go.symbol
mappings.go.geo_genes
.....
这是我写的代码,但它只给了我“go”和其他与 go 位置相似的节点,这些节点没有在图片中显示。我如何修改它以获得我想要的结果,如住所所述:
index = "site_index_stage"
elastic_url = "http://localhost:9200"
mapping_fields_request = "_mapping/field/*"
mapping_fields_url = "/".join([elastic_url, index, mapping_fields_request])
response = requests.get(mapping_fields_url)
print(response)
data = response.content.decode()
parsed_data = json.loads(data)
for key in parsed_data[index]['mappings']:
print(key)
解决方案
最后,我是这样做的:
def nested_dict_iter(nested):
for key, value in nested.items():
# print((key,value))
if type(value)==type({}):
for x in value:
output.write(key+'.'+x)
output.write('\n')
nested_dict_iter(parsed_data[index]['mappings'])
推荐阅读
- python - Python 和 MySQL 连接
- python - 使用 Python SDK 和证书连接到 Service Fabric
- javascript - 箭头函数/承诺(及其他)中的“隐式”变量声明?
- java - 在 Java 中为 xml 添加新的根元素
- c# - 登录asp.net core 3.0后如何重定向到区域?
- arrays - 尝试删除数组项的 MongoDB 错误
- c# - 了解 SemaphoreSlim 问题?
- python - 有没有一种简单的方法来获取使用 Selenium 获取的页面的大小?
- java - 如何在 WebView 中设置深色主题?
- html - HTML/CSS:滚动矩形不起作用