pythonで外部APIをコールした結果が、バイナリで帰ってくる時の対応
python3で外部APIをコールした結果が、バイナリで帰ってくる時の対応
import ast import json, requests token_url = 'https://xxxxxxxxx/api-token-auth/' result = requests.post(token_url, data={ 'username': 'xxxxx', 'password': 'xxxxx' }) token = json.loads(result.content).get('token')
上記では、
ERROR the JSON object must be str, not 'bytes'
となる。
回避策として、
import ast import requests token_url = 'https://xxxxxxxxx/api-token-auth/' result = requests.post(token_url, data={ 'username': 'xxxxx', 'password': 'xxxxx' }) result = ast.literal_eval(result.content.decode('utf-8')) token =result.get('token')
下記で、バイナリを文字列に変換する。
result.content.decode('utf-8')
変換後の情報を辞書化する。
ast.literal_eval(xxx)