小编qsh*_*hng的帖子

Flask sqlalchemy - 根据数据库中的列动态生成数据模型

有没有办法根据 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)

python flask flask-sqlalchemy

7
推荐指数
1
解决办法
2765
查看次数

如何从for循环中存储结果列表

我是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)

loops r

6
推荐指数
1
解决办法
1718
查看次数

Excel If Or 语句不起作用

我有两列数据,我想根据两个标准确定交换候选人:

  1. 如果第一列 < 0.5 或
  2. 如果第一列除以第二列 < 10。

这是我的公式 =IF(OR(E2<0.5,(E2/F2)<=10),"Swap Candidate"," ")

(第一列和第二列在工作簿的 E 列和 F 列中)。但该功能无法正常工作。相反,它将所有值返回为 true 而不是。例如在突出显示的单元格中。

在此处输入图片说明

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

数字以正确的格式存储。所以我不明白这是怎么回事。有人可以帮我吗?

excel excel-formula

5
推荐指数
1
解决办法
7247
查看次数

具有最小大小约束的聚类算法

我有一组数据聚类到k组,每个聚类的最小大小约束为m

我做了一些重新复制的数据.所以现在我得到了这一组点,每个点都有一个或多个更好的簇,但不能单独切换,因为它会违反大小约束.

目标:最小化从每个点到其中心的距离之和.

受制于:最小簇大小m

我想找到一种算法来重新分配所有点而不违反约束,同时保证减少目标.

我想过使用Graph来表示点之间的成对关系.但我不确定如何进行重新分配,因为它存在大密集循环的可能性,而且我在多个集群之间交换多个点时迷失了方向.

我还创建了一个具有可能的交换候选者的聚类对列表,但仍然无法找到最佳目标的方法.

我希望我解释了我的情况.我是算法新手,不熟悉行话和规则.如果需要任何其他信息,请告诉我.

我已经做了很多研究,我已经在本文中尝试了算法,但没有成功,因为会员度的总和不一定与簇大小相关. 使用大小约束进行聚类

我还在SO上阅读了其他类似的帖子,但没有找到我可以实现的详细算法.

我试图构建一个加权有向图,顶点表示簇,A到B的边表示簇A中的点,它们愿意重新定位到簇B.并且权重是点的总和

但是根据我的数据,结果表明所有节点都处于一个边缘非常密集的巨大周期中.由于我的经验有限,我仍然无法弄清楚如何在如此多的集群中重新分配.任何建议表示赞赏!

像这样的东西.
在此输入图像描述

algorithm cluster-analysis

5
推荐指数
1
解决办法
2295
查看次数

出现错误时如何退出循环

我有一个循环,我在其中搜索矩阵中的某个值。当没有这样的值存在时,该函数将抛出错误。我想在发生错误时退出循环。我该怎么做呢?

我在想这样的事情,但不确定如何在 R 中执行。

for (i in 1:n){
val<-#find some value in an matrix
if (val returns error) break
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

loops r

5
推荐指数
2
解决办法
1682
查看次数

可视化R中的强连接组件

我有一个带有三个强连通分量(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中做到这一点?谢谢!

在此输入图像描述

r graph

3
推荐指数
1
解决办法
1443
查看次数

igraph包中的子图错误

我想获得图中所有周期的子图。我尝试了下面的代码

 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)

r subgraph igraph

1
推荐指数
1
解决办法
2213
查看次数

如何检查字典列表中的键是否完全相同

我想检查字典是否包含与键列表中完全相同的键(不多也不少)。我目前正在使用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)

python dictionary

0
推荐指数
1
解决办法
139
查看次数