【问题标题】:Python: Got dict_keys and str instead of strPython:得到 dict_keys 和 str 而不是 str
【发布时间】:2021-11-25 08:06:30
【问题描述】:

我一直在使用某些 Json 文件,我想将所有密钥存储在某个列表中,但我得到如下

[
"dict_keys(['Agricultural Development Bank Ltd.'])",
"dict_keys(['Bank of Kathmandu Limited'])",
"dict_keys(['Best Finance Company Ltd.'])",
"dict_keys(['Central Finance Ltd'])",
"dict_keys(['Century Commercial Bank Limited'])",]

我如何才能获得“农业发展银行有限公司”?

这是我处理的代码

json的一小部分在这里

data = [
    {
        "Agricultural Development Bank Ltd.": [
            "Palpa (Rampur) Branch",
            "Tinpaini Branch"]}, {
        "Bank of Kathmandu Limited": [
            "Palpa (Rampur) Branch",
            "Tinpaini Branch"]}]
       




import json

all_branch = []
for datas in data:
    all_branch.append(str(datas.keys()))

with open('bank_branches.json', 'w', encoding='utf-8') as f:
    json.dump(all_branch, f, ensure_ascii=False, indent=4)

我如何只得到str?

【问题讨论】:

  • data中的每个字典可以有多个key吗?
  • 是的,数据中大约有 60 个键
  • 不,我的意思是,对于列表中的每个字典,可以有超过 1 个键。例如这里{ "Agricultural Development Bank Ltd.": ["Palpa (Rampur) Branch", "Tinpaini Branch"]},只有1个键。这本字典可以有超过 1 个
  • 可以有更多但不相同的键

标签: python json dictionary


【解决方案1】:

您可以使用特定键查找所有字典

json.dump([d for d in data if 'Agricultural Development Bank Ltd.' in d], f, ensure_ascii=False, indent=4)

【讨论】: