elasticsearch,Arrays,Json,Python 3.x,elasticsearch" /> elasticsearch,Arrays,Json,Python 3.x,elasticsearch" />

Arrays 如何在字典的键中提取键

Arrays 如何在字典的键中提取键,arrays,json,python-3.x,elasticsearch,Arrays,Json,Python 3.x,elasticsearch,我的结构如下: mappings": { "go": { "_ttl": {something goes here}, "symbol": {}, "associationType.keyword": {}, "go_genes": {}, "go_species.keyword": {}, "symbol.autocomplete": {}, "primaryId": {}, "href.keyword": {}, "name_key": {}, "symbol.sort": {}, "nam

我的结构如下:

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'])

@Oighea,更正!我还使用了print[key for key in[parsed_data[index][mappings']].items]。但这给了我一个错误AttributeError:“list”对象没有属性“items”