handle errors when received an array from api (#289)
diff --git a/googleapiclient/errors.py b/googleapiclient/errors.py
index 1b79d2f..e6f1f9d 100644
--- a/googleapiclient/errors.py
+++ b/googleapiclient/errors.py
@@ -52,8 +52,12 @@
reason = self.resp.reason
try:
data = json.loads(self.content.decode('utf-8'))
- reason = data['error']['message']
- except (ValueError, KeyError):
+ if isinstance(data, dict):
+ reason = data['error']['message']
+ elif isinstance(data, list) and len(data) > 0:
+ first_error = data[0]
+ reason = first_error['error']['message']
+ except (ValueError, KeyError, TypeError):
pass
if reason is None:
reason = ''