CP4DのWatson StudioのJupyterからICOSを操作する
CP4DのWatson StudioのJupyterからICOSを操作します。
CP4Dの接続オブジェクトからICOSへの接続情報を取得して、ibm_boto3で接続します。
- テスト環境
- CP4D 4.0.4
- ibm-watson-studio-lib 3.0.6
- boto3 1.17.46
- botocore 1.20.88
1 接続オブジェクトのリストを取得
Watson StudioのプロジェクトにICOSのバケットへの接続オブジェクト(例:200322icosbucket)を登録しておきます。
接続オブジェクトにはICOSのバケットに接続するための情報が記録されています。
ibm_watson_studio_libでPythonコードから接続オブジェクトにアクセスが可能です。
なお、資格情報としてJSON形式のまま入力すると、ibm_watson_studio_libでアクセスしにくいので、リソース・インスタンス ID、API 鍵、アクセス・キー、秘密鍵などを各入力欄に入力しておいてください。
list_connectionsで接続オブジェクトのリストを得ることができます。
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space()
#接続オブジェクトのリスト
assets=wslib.list_connections()
wslib.show(assets)
get_connectionで接続オブジェクトの設定を取得できます。api_key、resource_instance_id、bucketなどの情報が取れます。
connection_config=wslib.get_connection('200322icosbucket')
connection_config
2 ICOSへの接続
ibm_boto3をAPIをつかってICOSへ接続します。
from botocore.client import Config
import ibm_boto3
cosclient = ibm_boto3.client("s3",
ibm_api_key_id=connection_config['api_key'],
ibm_service_instance_id=connection_config['resource_instance_id'],
ibm_auth_endpoint=connection_config['iam_url'],
config=Config(signature_version="oauth"),
endpoint_url='https://'+connection_config['url']
)
200322icosbucketの中には以下のようなオブジェクトが入っています。
これをAPIで取得してみます。
listobject=cosclient.list_objects(Bucket=connection_config['bucket'])
listobject['Contents']
[{'Key': 'Cond4n_e.csv',
'LastModified': datetime.datetime(2020, 4, 22, 6, 9, 45, 212000, tzinfo=tzlocal()),
'ETag': '"a2f6827a0f9433a1d91520607747276b"',
'Size': 134617,
'StorageClass': 'STANDARD',
'Owner': {'DisplayName': '52aa9e0c-0aa7-45e5-b231-1a65d1a57a1a',
'ID': '52aa9e0c-0aa7-45e5-b231-1a65d1a57a1a'}},
{'Key': 'Cond4n_e104.csv',
'LastModified': datetime.datetime(2020, 4, 22, 6, 9, 43, 413000, tzinfo=tzlocal()),
'ETag': '"fdb3803425be82d35c6ed178a14c4305"',
'Size': 146,
'StorageClass': 'STANDARD',
'Owner': {'DisplayName': '52aa9e0c-0aa7-45e5-b231-1a65d1a57a1a',
'ID': '52aa9e0c-0aa7-45e5-b231-1a65d1a57a1a'}},
-----以下略-----------
3 ICOSからCSVのダウンロード
Cond4n_e104.csvをpandasに読み込んで、CSVとして出力します。
import pandas as pd
from io import StringIO
body=cosclient.get_object(Bucket=connection_config['bucket'],Key='Cond4n_e104.csv')['Body']
df=pd.read_csv(StringIO(body.read().decode('utf-8')))
df.to_csv('Cond4new.csv', index=False)
4 ICOSへのCSVのアップロード
Cond4new.csvをICOSのBucketにアップロードします。
cosclient.put_object(Bucket=connection_config['bucket'],
Key='Cond4new.csv', Body='Cond4new.csv')
ICOSのbucketにアップロードされました。
サンプルコード
参考
Watson Studio (Notebook)からICOSにアクセスする
Author And Source
この問題について(CP4DのWatson StudioのJupyterからICOSを操作する), 我々は、より多くの情報をここで見つけました https://qiita.com/kawada2017/items/261b73df274119dbf4db著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .