【问题标题】:Getting the keys, and not the values获取键,而不是值
【发布时间】:2020-08-19 08:16:01
【问题描述】:

所以我想获取json键并将它们与变量q进行比较

Json 文件

{
  "api_key": "YOUR AUTOBUY API KEY",
  "prefix": "PREFIX FOR BOT COMMANDS (for e.x !redeem, ?claim, etc",
  "redeem_message": "Thanks for redeeming your order for {0}, I have added the ROLE_NAME_HERE role.",
  "role_id": "REPLACE THIS WITH THE ID OF THE ROLE YOU WANT TO GIVE UPON REDEEMING",
  "redeem_channel_id": "REPLACE THIS WITH THE CHANNEL ID WHERE PEOPLE CAN USE THE REDEEM COMMAND",
  "bot_token": "PUT YOUR DISCORD BOT TOKEN HERE"
}

代码

import json

def search(q):
    with open("config.json") as f:
        data = json.load(f)
        for obj in data:
            print(data[obj])
search(q="role_id")

预期输出:REPLACE THIS WITH THE ID OF THE ROLE YOU WANT TO GIVE UPON REDEEMING(因为 q = role_id 我希望它返回键的值)

实际输出:

YOUR AUTOBUY API KEY
PREFIX FOR BOT COMMANDS (for e.x !redeem, ?claim, etc
Thanks for redeeming your order for {0}, I have added the ROLE_NAME_HERE role.
REPLACE THIS WITH THE ID OF THE ROLE YOU WANT TO GIVE UPON REDEEMING
REPLACE THIS WITH THE CHANNEL ID WHERE PEOPLE CAN USE THE REDEEM COMMAND
PUT YOUR DISCORD BOT TOKEN HERE

【问题讨论】:

    标签: python json


    【解决方案1】:

    超级简单,如果你只需要一个值,就不需要for 循环:

    import json
    
    def search(q):
        with open("config.json") as f:
            data = json.load(f)
            print(data[q])
    search(q="role_id")
    

    【讨论】:

      【解决方案2】:

      下面

      data = {'A':12,'B':13}
      
      q = 'A2'
      
      value = data.get(q)
      if value is not None:
          print(value)
      else:
          print('{} not found'.format(q))
      

      【讨论】:

        猜你喜欢
        • 2015-12-16
        • 2017-07-21
        • 2018-08-09
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 2013-05-20
        • 1970-01-01
        • 2023-01-30
        相关资源
        最近更新 更多