Посмотрите на этот пример:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$http) {
var getJoke = function(){
return $http.get('http://api.icndb.com/jokes/random').then(function(res){
return res.data.value;
});
}
getJoke().then(function(res) {
console.log(res.joke);
});
});
Как вы можете видеть, getJoke
возвращает разрешенное обещание (оно разрешено при возврате res.data.value
). Таким образом, вы ждете, пока запрос $ http.get не будет завершен, а затем выполнится console.log (res.joke) (как обычный асинхронный поток).
Это plnkr:
a[0]
является xlrd.Cell
, поэтому вам нужно использовать a[0].value
для доступа к содержимому ячейки.
Кроме того, вы не можете распаковать year, month, day, hour, minute
, потому что в полученном корте более пяти значений (что относительно second
?) Однако вы можете избежать этого, используя распаковку кортежа (см., например, Что делает ** (двойная звезда) и * (звезда) для параметров? ) вместо временных переменных:
py_date = datetime.datetime(*xlrd.xldate_as_tuple(a[0].value,
book.datemode))
принятый ответ jonrsharpe работает хорошо. Но это чище:
py_date = xlrd.xldate.xldate_as_datetime(a[0].value, book.datemode)