[英]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.