有没有办法根据 Flask SQLAlchemy 数据库表中的列动态生成数据库模型?
我有一个应用程序来显示数据库表中的数据,但列名称有时会更改并破坏我的应用程序。我希望有一种方法可以根据数据库中的实际列名动态生成数据模型。
我目前明确声明所有列,如下所示。
class MyDbModel(db.Model):
__tablename__ = 'my_table'
id = db.Column('id', db.NVARCHAR(length=300), primary_key=True)
name= db.Column('name', db.NVARCHAR(length=300),
nullable=True)
Run Code Online (Sandbox Code Playgroud)
我对 sqlalchamy 不太熟悉,我尝试了以下方法,但出现了如下错误,我不确定这是否是正确的方法。
could not assemble any primary key columns for mapped table
from sqlalchemy import Table, Column
from sqlalchemy.orm import mapper
db = SQLAlchemy()
class MyDbModel(db.Model):
__tablename__ = 'my_table'
def __init__(self):
#helper function to get column headers of a db table
table_cols = get_headers_or_columns(
'my_table'
)
t = Table(
'my_table', db.metadata,
Column('id', db.NVARCHAR(length=300), primary_key=True),
*(Column(table_col, db.NVARCHAR(length=300)) for table_col in …Run Code Online (Sandbox Code Playgroud) 我是R的新手,这可能是一个愚蠢的问题,但我不知道如何解决.
我有一个for循环,可能返回i*j非空元素.
我想将所有非空结果存储在列表中,但如果我result[[i]]<-tmp在循环中使用 它,它只能存储i元素,我如何能够将所有值存储在列表中?谢谢
result<-list()
for (i in 1:nrow(m)){
for (j in 1:i){
if(m[i,j]!=0 && m[j,i]!=0){
num=min(m[i,j],m[j,i])
tmp=c(i,j,num)
result[[i]]<-tmp
}
}
}
sample data
set.seed(123)
m= matrix(sample(0:5, size = 5*5, replace = TRUE), ncol = 5)
Run Code Online (Sandbox Code Playgroud)
期望
row col min
[1] 1 1 1
[1] 2 2 3
[1] 3 1 2
[1] 3 2 2
[1] 3 3 4
[1] 4 1 5
[1] 4 2 1
[1] 4 4 1
[1] 5 1 5 …Run Code Online (Sandbox Code Playgroud) 我有两列数据,我想根据两个标准确定交换候选人:
这是我的公式 =IF(OR(E2<0.5,(E2/F2)<=10),"Swap Candidate"," ")
(第一列和第二列在工作簿的 E 列和 F 列中)。但该功能无法正常工作。相反,它将所有值返回为 true 而不是。例如在突出显示的单元格中。

我还为突出显示的单元格运行了公式评估。它在评估 OR 语句后显示 FALSE,但如果为真则返回值。

数字以正确的格式存储。所以我不明白这是怎么回事。有人可以帮我吗?
我有一组数据聚类到k组,每个聚类的最小大小约束为m
我做了一些重新复制的数据.所以现在我得到了这一组点,每个点都有一个或多个更好的簇,但不能单独切换,因为它会违反大小约束.
目标:最小化从每个点到其中心的距离之和.
受制于:最小簇大小m
我想找到一种算法来重新分配所有点而不违反约束,同时保证减少目标.
我想过使用Graph来表示点之间的成对关系.但我不确定如何进行重新分配,因为它存在大密集循环的可能性,而且我在多个集群之间交换多个点时迷失了方向.
我还创建了一个具有可能的交换候选者的聚类对列表,但仍然无法找到最佳目标的方法.
我希望我解释了我的情况.我是算法新手,不熟悉行话和规则.如果需要任何其他信息,请告诉我.
我已经做了很多研究,我已经在本文中尝试了算法,但没有成功,因为会员度的总和不一定与簇大小相关. 使用大小约束进行聚类
我还在SO上阅读了其他类似的帖子,但没有找到我可以实现的详细算法.
我试图构建一个加权有向图,顶点表示簇,A到B的边表示簇A中的点,它们愿意重新定位到簇B.并且权重是点的总和
但是根据我的数据,结果表明所有节点都处于一个边缘非常密集的巨大周期中.由于我的经验有限,我仍然无法弄清楚如何在如此多的集群中重新分配.任何建议表示赞赏!
像这样的东西.

我有一个循环,我在其中搜索矩阵中的某个值。当没有这样的值存在时,该函数将抛出错误。我想在发生错误时退出循环。我该怎么做呢?
我在想这样的事情,但不确定如何在 R 中执行。
for (i in 1:n){
val<-#find some value in an matrix
if (val returns error) break
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个带有三个强连通分量(SCC)的加权有向图.SCC是从该igraph::clusters功能获得的
library(igraph)
SCC<- clusters(graph, mode="strong")
SCC$membership
[1] 9 2 7 7 8 2 6 2 2 5 2 2 2 2 2 1 2 4 2 2 2 3 2 2 2 2 2 2 2 2
SCC$csize
[1] 1 21 1 1 1 1 2 1 1
SCC$no
[1] 9
Run Code Online (Sandbox Code Playgroud)
我想用圆圈和彩色背景可视化SCC,如下图所示,有没有办法在R中做到这一点?谢谢!

我想获得图中所有周期的子图。我尝试了下面的代码
for (i in 1:length(cycles)){
vids<-as.numeric(unlist(cycles[[i]]))
subgraph<- induced.subgraph(graph, vids)
}
Run Code Online (Sandbox Code Playgroud)
但是它会抛出如下错误:
Error in .Call("R_igraph_induced_subgraph", graph, vids - 1, impl, PACKAGE = "igraph") :
At iterators.c:759 : Cannot create iterator, invalid vertex id, Invalid vertex id
Run Code Online (Sandbox Code Playgroud)
我发现该代码可与cycles列表中的第二个元素一起使用,该元素较短,但第一个元素不是。因此,如果我尝试这样做会起作用,
subgraph<- induced.subgraph(g, c(3,4))
Run Code Online (Sandbox Code Playgroud)
但不是
subgraph<- induced.subgraph(g, c(26, 2, 30, 29, 25, 9, 27, 13, 14, 8, 23, 20, 19, 17, 12, 11, 24, 21, 6, 28, 15,3,4))
Run Code Online (Sandbox Code Playgroud)
同样,欢迎提出任何替代for循环的建议。
一个可重现的示例:
library(igraph)
graph<-graph(c(1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,
16,17,17,18,18,19,19,20,20,21,21,1,22,23,23,22),directed=T)
V(graph)$name<-c(26, 2, 30, 29, 25, 9, 27, 13, 14, 8, …Run Code Online (Sandbox Code Playgroud) 我想检查字典是否包含与键列表中完全相同的键(不多也不少)。我目前正在使用all()长度检查来执行此操作。有没有更好的办法?谢谢!
d = {'1': 'one', '3': 'three', '2': 'two'}
key_list = ['1', '2', '3']
all(col in d for col in key_list) and len(d) == 3
True
Run Code Online (Sandbox Code Playgroud)