我是Python的新用户,我遇到<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div class="map">
<div class="btn_mapa" id="1" data-id="San Diego, CA">San Diego</div>
<div class="btn_mapa" id="2" data-id="Belo Horizonte, MG">Belo Horizonte</div>
<div class="btn_mapa" id="3" data-id="New York, NY">New York, NY</div>
<!–– ... many others ... ––>
<div class="btn_mapa" id="259" data-id="Atlanta, GA">Atlanta, GA</div>
</div>
<div id="map-canvas"></div>
<script>
var geocoder;
var map;
var div1 = document.getElementById("1");
var address = div1.getAttribute("data-id");
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
var btn_mapa = document.getElementsByClassName('btn_mapa');
for (var i = 0; i < btn_mapa.length; i++) {
google.maps.event.addDomListener(btn_mapa[i], 'click', function() {
var address = this.getAttribute('data-id');
console.log(address);
geocodeAddress(address);
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
function geocodeAddress(address) {
if (geocoder) {
geocoder.geocode({
address: address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
map.setCenter(results[0].geometry.location);
} else {
alert("No results found");
}
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
</script>
类型的问题,我看了另一个问题,但问题仍然存在。
我的代码正在寻找两个日期之间的星期五和星期六,到目前为止,它仍然有效,但是当我将两者加总时,会出现此错误:
“ TypeError:+不支持的操作数类型:'NoneType'和'NoneType'
将结果返回到函数中之后。
这是我的代码:
None
答案 0 :(得分:0)
我玩过您的代码。似乎有点工作。它可以算出一周中哪些日期存在于一系列日期中。当您的日期范围中既没有星期五也没有星期六时,就会出现您看到的问题(请注意,您有一个名为“ mon”的变量,该变量是通过查找键“星期五”设置的。)
因此,看来您的问题是,您必须考虑以下情况:在输入的日期范围内,一周中的这两天都不存在。在这种情况下,周地图中将不存在week.get('Friday')和week.get('Saturday')中的一个或两个,因此周一和/或 sat 将无,并且您将遇到问题。
为使您的代码运行,我在代码下方添加了此代码:
class Rec:
def __init__(self, start, end):
self.mission_start_date = start
self.mission_end_date = end
self = [
Rec("2019-3-31", "2019-4-1")
]
get_compensation(self)
这使我可以使您的代码处理一对日期。如果我在此处给出的日期范围包括星期五和星期六,则您的代码运行良好。否则,它会完全拒绝您正在谈论的错误。
如果更改行:
mon = week.get('Friday')
sat = week.get('Saturday')
收件人:
mon = week.get('Friday') if 'Friday' in week else 0
sat = week.get('Saturday') if 'Saturday' in week else 0
然后您的代码在我进行测试的任何日期范围内都不会崩溃。我不知道它是否在计算所需的结果,因为您没有保留或返回任何计算结果。
答案 1 :(得分:0)
datetime.datetime(2019, 3, 1)
,那么答案应该是1
吗? ...
def get_compensation(self):
def date_range_inclusive(rec):
# if either date is undefined, then so is date range
if not rec.mission_end_date or not rec.mission_start_date:
return iter([])
# Add 1 for inclusivity of both start and end dates
num_days = abs((rec.mission_end_date - rec.mission_start_date).days) + 1
return (rec.mission_start_date + timedelta(days=n) for n in range(num_days))
for rec in self:
# date range, including both start and end dates
dates = date_range_inclusive(rec)
# desired days to count
day_selection = (calendar.FRIDAY, calendar.SATURDAY)
rec.days_compensation = sum([dt.weekday() in day_selection for dt in dates])
上面的代码将假定日期范围包括在内。删除+ 1
以使其不包含在内。如果不包括星期五或星期六,则会将days_compensation
字段设置为0。
请注意,由于日历枚举和weekday
中的datetime
函数都求值为可以比较的整数,因此无需在数据类型之间来回转换。
请记住,https://www.odoo.com/documentation/8.0/reference/orm.html
computed fields are not stored by default, they are computed and returned when requested. Setting store=True will store them in the database and automatically enable searching
因此,您可能需要:
days_compensation = fields.Float(compute='get_compensation', compstring='Jours de récupération', help="Jours de récupération si la mission contient les jours de repos", required=True, readonly=True,
store=True)
请注意,唯一的更新是store=True
答案 2 :(得分:0)
我想。您可以使用datetime formate来在两个日期范围之间的星期六返回星期五 并检查日期名称是否为必填项的条件
此格式的打印日期名称。 “%A”
答案 3 :(得分:0)
这是针对从搜索引擎到达这里的人。 我在导入数据时遇到此错误。之所以发生,是因为我将产品ID字段映射到Product
而不是Product/External ID
。因此,如果在导入数据时遇到此错误,请检查id字段是否映射正确。