繁体   English   中英

如何遍历松弛的 api 响应并保存为局部变量?

[英]How to iterate through a slack api response and save as local variable?

我正在尝试制作一个松弛的应用程序,并且正在努力将 api 响应的一部分保存为局部变量。

这是我的代码:

import os
import re
import time
from dotenv import load_dotenv
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

load_dotenv()
#loading env variables
SLACK_APP_TOKEN = os.environ["SLACK_APP_TOKEN"]
SLACK_BOT_TOKEN = os.environ["SLACK_BOT_TOKEN"]

app = App(token=SLACK_BOT_TOKEN, name="SlackApp")


@app.message(re.compile("^."))#event listener listens to messages matching a wildcard regular expression
def reply(message, say):
    print("Message :"+message["text"])
    print("Recieved @:"+time.ctime())

   #job title check
    userid = message["user"]
    userinfodict = app.client.users_info(
       user=userid
          
    )      
    print(userinfodict)

这将返回 output :

{'ok': True, 'user': {'id': 'U03PMCY1BUG', 'team_id': 'T03NH2KCQA3', 'name': 'John Doe', 'deleted': False, 'color': '9f69e7', 'real_name': 'John Doe', 'tz': 'America/New_York', 'tz_label': 'Eastern Daylight Time', 'tz_offset': -14400, 'profile': {'title': 'Business Analyst', 'phone': '', 'skype': '', 'real_name': 'John Doe', 'real_name_normalized': 'realfakename', 'display_name': '', 'display_name_normalized': '', 'fields': None, 'status_text': '', 'status_emoji': '', 'status_emoji_display_info': [], 'status_expiration': 0, 'avatar_hash': 'gb8c5320087d', 'first_name': 'John', 'last_name': '', 'image_24': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-24.png', 'image_32': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-32.png', 'image_48': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-48.png', 'image_72': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-72.png', 'image_192': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-192.png', 'image_512': 'https://secure.gravatar.com/avatar/b8c5320087d1218227d9c8f54866a381.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-512.png', 'status_text_canonical': '', 'team': 'T03NH2KCQA3'}, 'is_admin': True, 'is_owner': True, 'is_primary_owner': True, 'is_restricted': False, 'is_ultra_restricted': False, 'is_bot': False, 'is_app_user': False, 'updated': 1659555324, 'is_email_confirmed': True, 'who_can_share_contact_card': 'EVERYONE'}}

如何将此 output 的一部分保存为局部变量? 特别是职称:

...'profile': {'title': 'Business Analyst',...

它不是字典,它的类型是:<class 'slack_sdk.web.slack_response.SlackResponse'>

由于您已经拥有 output 字典,请使用[]运算符提取标题,即__getitem__()

userinfodict['user']['profile']['title']  # => 'Business Analyst'

暂无
暂无

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

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