「Cisco Webex Teams のメンバーを取得するサンプル」の 2 バイト文字対応版

以前に Python で Cisco Webex Teams のスペースに所属するメンバー一覧を取得する というメモをました。 ただ、このサンプルだと「取得したスペース名が 2byte 文字が含まれている場合、出力した CSV ファイルが文字化け」していた為、CSV 出力部分に文字コードを指定するように微修正しました。 修正したスクリプトは以下です。 実行結果は変わりません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python3

import argparse
import configparser
import os

import pandas
from webexteamssdk import WebexTeamsAPI

parser = argparse.ArgumentParser(description="Retrieve chat room members.")
parser.add_argument("-c", "--csv", help="Output in CSV format")
args = parser.parse_args()

config = configparser.ConfigParser()
config.read(os.path.expanduser("~") + "/.webexrc")
BOT_ACCESS_TOKEN = config["settings"]["BOT_ACCESS_TOKEN"]

data = []
api = WebexTeamsAPI(access_token=BOT_ACCESS_TOKEN)
rooms = api.rooms.list()
for room in rooms:
    members = api.memberships.list(room.id)
    for member in members:
        data.append([room.title, member.personDisplayName, member.personEmail])

df = pandas.DataFrame(data, columns=["Room", "Name", "Email"]).sort_values(
    by=["Room", "Name"]
)
print(df.to_string(index=False))

if args.csv != None:
    df.to_csv(args.csv, encoding="utf-8-sig", index=False)