我需要查询 API 以获取多月期间的数据。但是,API 的阻塞时间间隔超过 3 天。
所以我想创建一个生成器函数来将我的多月日期范围分成 3 天段,我可以在重复调用命中 API 的函数时使用这些段:当我传递开始日期和结束日期时,它给了我:
到目前为止,这是我的代码。它将第一次工作,但我不确定如何在下次调用该函数时使开始日期增加 3 天。而且我也不确定在达到最终结束日期之前我是否还有 1 或 2 天的时间来将我的until变量设置为最终结束日期——我认为现在它只是说“还有不到 3 天的时间,直到最后日期,所以让我们退出”:
3_day_segmenter(start, end):
start_date = datetime.strptime(start, '%Y-%m-%d')
end_date = datetime.strptime(end, '%Y-%m-%d')
since = start_date
for date in range(int ((end_date - start_date).days)):
until = start_date + datetime.timedelta(days=3)
yield since, until
Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要连接到PostgreSQL数据库和MySQL数据库的SQLAlchemy应用程序.基本上我是从现有MySQL数据库加载数据,对其进行一些转换,然后将其保存在PostgreSQL中.
我正在使用SQLAlchemy管理PostgreSQL架构declarative base.MySQL数据库已经存在,我通过SQLAlchemy的反射访问模式.两者都有非常不同的模式.
我知道我需要专门engines为每个数据库,但我不清楚我是否需要以下任何一个的专用对象:
Base - 我认为这对应于数据库架构.由于两个数据库都有非常不同的模式,因此我需要专用Base于每个模式.
Metadata - 这是否是一个包含所有引擎的所有模式的单个全局元数据对象?
Sessions - 我不确定,但我认为每个数据库需要单独的会话?或者可以单个session共享多个engine/ Base组合?我正在使用scoped_sessions.
我困惑的一部分来自不理解之间的差异Base和Metadata.在SQLAlchemy的文档说:
MetaData是一个容器对象,它将所描述的数据库(或多个数据库)的许多不同功能保持在一起.
这似乎意味着单个metadata可以容纳多个Base,但我仍然有点模糊它的工作原理.例如,我希望能够metadata.create_all()在PostgreSQL中调用和创建表,而不是MySQL.
所以我正在尝试使用我发现的一个类来修复我的电子商务问题.
在华盛顿州,在线商店需要根据送货地址确定税率.
类:
/**
* @author SmallDog
* @contact dustin@smalldo.gs
* @created 01-27-2011
**/
class destinationTax
{
private $dor_url = 'http://dor.wa.gov';
function __construct(){ }
function getTax($addr,$city,$zip)
{
$req = $this->dor_url."/AddressRates.aspx?output=xml&addr=$addr&city=$city&zip=$zip";
return $this->_get_decoded($req);
}
private function _get_decoded($url)
{
$url = urlencode($url);
if($xml = simplexml_load_file($url))
{
switch($xml->attributes()->code)
{
case 0:
// Code 0 means address was perfect
break;
case 1:
$xml->msg = "Warning: The address was not found, but the ZIP+4 was located.";
break;
case 2:
$xml->msg = "Warning: Neither …Run Code Online (Sandbox Code Playgroud) 当URL的格式为"msgID"或"msg = ID"时,我想提取消息ID的第一个实例,但是当"msg"和"ID"之间有任何其他字符时,我想提取消息ID的第一个实例
测试应该给我消息ID的字符串:
/forum/index.php/topic,101126.msg3826887.html#msg3826887
/forum/index.php?topic=101126.msg3826887#msg3826887
/forum/index.php?msg=3826887
Run Code Online (Sandbox Code Playgroud)
测试应该失败的字符串:
/forum/index.php?msgrad3826887
/forum/index.php?msg,3826887
Run Code Online (Sandbox Code Playgroud)
这是我的正则表达式:
forum\/index.php.+?msg=?([0-9]*)
但是,当我在Rubular或Regexr中测试它时,它们显示正则表达式成功匹配所有这些字符串.
应该失败的测试不会为捕获组提供任何结果,但看起来成功匹配.
为什么会这样,我如何修复我的正则表达式?
python ×2
date ×1
generator ×1
mysql ×1
nginx ×1
pcre ×1
php ×1
postgresql ×1
python-2.7 ×1
regex ×1
simplexml ×1
sqlalchemy ×1