简体   繁体   English

python如何切字典

[英]python how to slice a dictionary

what I have: 我有的:

[{'model': 're_catalogue.component', 'pk': 1, 'fields': {'name': 'Solar modules', 'name_el': 'Φωτοβολταικά πλαίσια', 'name_de': 'Solarmodul'}}, {'model': 're_catalogue.component', 'pk': 2, 'fields': {'name': 'DC cables', 'name_el': 'DC καλώδια', 'name_de': 'DC-Kabel'}}, {'model': 're_catalogue.component', 'pk': 3, 'fields': {'name': 'DC combiner boxes', 'name_el': 'DC πίνακες', 'name_de': 'DC-Anschlussgehäuse'}}]

for i in range (0,20):
    print(d[i])

The output 输出

{'model': 're_catalogue.component', 'pk': 1, 'fields': {'name': 'Solar modules', 'name_el': 'Φωτοβολταικά πλαίσια', 'name_de': 'Solarmodul'}}
{'model': 're_catalogue.component', 'pk': 2, 'fields': {'name': 'DC cables', 'name_el': 'DC καλώδια', 'name_de': 'DC-Kabel'}}
{'model': 're_catalogue.component', 'pk': 3, 'fields': {'name': 'DC combiner boxes', 'name_el': 'DC πίνακες', 'name_de': 'DC-Anschlussgehäuse'}}
{'model': 're_catalogue.component', 'pk': 4, 'fields': {'name': 'Inverters', 'name_el': 'Μετατροπείς', 'name_de': 'Wechselrichter'}}
{'model': 're_catalogue.component', 'pk': 5, 'fields': {'name': 'AC cables', 'name_el': 'ΑC καλώδια', 'name_de': 'AC-Kabel'}}
{'model': 're_catalogue.component', 'pk': 6, 'fields': {'name': 'AC combiner boxes', 'name_el': 'AC πίνακες', 'name_de': 'AC-Anschlussgehäuse'}}

what I need is a json file that includes only the 'name' and 'name_el' like the following: 我需要的是一个仅包含'name''name_el'的json文件,如下所示:

{
"Solar modules": "Φωτοβολταικά πλαίσια",
"DC cables": "DC καλώδια",
}

Thank you for any help. 感谢您的任何帮助。 At the same time I am trying to solve it as well. 同时,我也在尝试解决它。

通过使用dict理解,您将获得具有所需输出的dict(假设您的dict列表称为lst ):

{i['fields']['name']:i['fields']['name_el'] for i in lst}

If i get your question right, this is what you want: 如果我正确回答您的问题,这就是您想要的:

lst = [
    {'model': 're_catalogue.component', 'pk': 1, 'fields': {'name':'Solar modules', 'name_el': 'Φωτοβολταικά πλαίσια', 'name_de': 'Solarmodul'}},
    {'model': 're_catalogue.component', 'pk': 2, 'fields': {'name': 'DC cables', 'name_el': 'DC καλώδια', 'name_de': 'DC-Kabel'}}
]

result = dict()
for i in lst:
    result[i['fields']['name']] = i['fields']['name_el']
print(result)
# {
#    "Solar modules": "Φωτοβολταικά πλαίσια",
#    "DC cables": "DC καλώδια"
# }
new_dict = {}
for e in d:
    new_dict[e['fields']['name']] = e['fields']['name_el']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM