我想知道在 SQLAlchemy 上工作的两个日期之间的差异。使用 Postgresql 我有以下工作:
SELECT
EXTRACT(EPOCH FROM ('2019-02-11 17:59:05.953894'::timestamp - '2019-02-11 17:59:01.953894'::timestamp))
Run Code Online (Sandbox Code Playgroud)
但是,在 SQLAlchemy 中尝试相同的操作时我遇到了问题:
session.query(func.extract('epoch',func.date(subquery.c.dt_final.cast(Date)))-
func.date(subquery.c.dt_start.cast(Date))).all()
Run Code Online (Sandbox Code Playgroud)
出现此错误:
ProgrammingError: (psycopg2.errors.UndefinedFunction) operator does not exist: double precision - date
LINE 1: ...h FROM date(CAST(anon_2.dt_final AS DATE))) - date(CAS...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
如何在 SQLAlchemy 中获取两个日期之间的差异的正确方法?
谢谢
我正在尝试使用QT Creator运行OpenGL的基本示例,为窗口提供颜色.但是,在调用OpenGL指令时,我在编译中遇到错误:glClearColor(1.0,1.0,0.0,1.0);*.pro文件是下一个:
QT += core gui opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test2
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
glwidget.cpp
HEADERS += mainwindow.h \
glwidget.h
FORMS += mainwindow.ui
Run Code Online (Sandbox Code Playgroud)
glwidget.h是下一个:
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QGLWidget>
class GLWidget : public QGLWidget
{
Q_OBJECT
public:
explicit GLWidget(QWidget *parent = 0);
void initializeGL();
};
#endif // GLWIDGET_H
Run Code Online (Sandbox Code Playgroud)
glwidget.cpp是下一个:
#include "glwidget.h"
GLWidget::GLWidget(QWidget *parent) :
QGLWidget(parent)
{
}
void GLWidget::initializeGL(){
glClearColor(1.0,1.0,0.0,1.0);
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char …Run Code Online (Sandbox Code Playgroud) 目的是去除数字和序数缩写(st,rd,th,nd)之间的空格。
例如,以下数字和缩写应该一起形成 10th、1st 和 133rd:
10 th elementary
1 st grade
133 rd anniversary
Run Code Online (Sandbox Code Playgroud)
但是,不允许将这些其他示例设置在一起:
abc123 th 33333 rddccc
10 thetree
20 street
Run Code Online (Sandbox Code Playgroud)
为此,我提出了以下正则表达式:
(?<=[0-9])+\s+(?=(st|nd|rd|th)\b)
Run Code Online (Sandbox Code Playgroud)
然而,它也将之前不允许的字符串设置在一起。
你知道我怎样才能把正确的序数放在一起吗?
我想获得字符串的动名词形式。我还没有找到调用库来获取动名词的直接方法。
我应用了以“ing”结尾的单词的规则,但是因为异常导致我收到了一些错误。然后,我检查 cmu 单词以确保生成的动名词单词正确。代码如下:
import cmudict
import re
ing= 'ing'
vowels = "aeiou"
consonants = "bcdfghjklmnpqrstvwxyz"
words=['lead','take','hit','begin','stop','refer','visit']
cmu_words= cmudict.words()
g_w = []
for word in words:
if word[-1] == 'e':
if word[:-1] + ing in cmu_words:
g_w.append(word[:-1] + ing)
elif count_syllables(word) == 1 and word[-2] in vowels and word[-1] in consonants:
if word.__len__()>2 and word[-3] in vowels:
if word + ing in cmu_words:
g_w.append(word + ing)
else:
if word + word[-1] + ing in cmu_words:
g_w.append(word + word[-1] + ing) …Run Code Online (Sandbox Code Playgroud) 当计算数组的每个值的绝对值时,我得到与abs()的错误操作数类型相关的错误:'list'.下一步是源代码失败的部分:
x = amplitudex * sin((2 * pi * (frequency * 1) * t) + phase);
y = amplitudey * sin((2 * pi * (frequency * 2) * t) + phase);
z = amplitudez * sin((2 * pi * (frequency * 3) * t) + phase);
w= 0.55* (x + y + z);
....
n = len(w);
wf = [float(0)] * n;
for k in range(n): # For each output element
s = float(0);
for t in range(n): # For …Run Code Online (Sandbox Code Playgroud) 在一组数字之后,我想在字符串中添加一个空格。例如,以下字符串应在数字后添加一个空格:
Before After
"0ABCD TECHNOLOGIES SERVICES" "0 ABCD TECHNOLOGIES SERVICES"
"ABCD0 TECHNOLOGIES SERVICES" "ABCD 0 TECHNOLOGIES SERVICES"
"ABCD 0TECHNOLOGIES SERVICES" "ABCD 0 TECHNOLOGIES SERVICES"
"ABCD TECHNOLOGIES0 SERVICES" "ABCD TECHNOLOGIES 0 SERVICES"
"ABCD TECHNOLOGIES 0SERVICES" "ABCD TECHNOLOGIES 0 SERVICES"
"ABCD TECHNOLOGIES SERVICES0" "ABCD TECHNOLOGIES SERVICES 0"
Run Code Online (Sandbox Code Playgroud)
我一直在尝试按以下方式在 Python 中处理正则表达式:
text= re.sub(r'([0-9]+)?([A-Za-z]+)?([0-9]+)?',
r'\1 \2 \3',
text,
0,
re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)
使用前面的代码,我得到了影响其他正则表达式转换的不需要的空格:
"0 abcd technologies services "
Run Code Online (Sandbox Code Playgroud)
如何在不添加不需要的空格的情况下在字符串中添加空格?
通过一些代码,并遇到Function.identity(),我发现它类似于s-> s。我不明白为什么以及何时应该使用Function.identity()。
我试图通过一个例子来理解,但是并没有阐明我的问题:
public static void main(String[] args){
Arrays.asList("a", "b", "c")
.stream()
.map(Function.identity())
//.map(str -> str) //it is the same as identity()
.forEach(System.out::println);
return;
}
Run Code Online (Sandbox Code Playgroud)
当打印带有和不带有映射的列表元素时,我得到相同的结果:
a
b
c
Run Code Online (Sandbox Code Playgroud)
那么,包含s-> s的目的是传递字符串并检索字符串吗?Function.identity()的目的是什么?
请给我提供一个更好的示例,也许这个示例对证明使用identity()的重要性没有意义。
谢谢