小编And*_*iță的帖子

ImportError:无法从“flask.json”导入名称“JSONEncoder”

我正在学习 Flask 的全栈课程。我的init .py 看起来像:

from flask import Flask
from config import Config
from flask_mongoengine import MongoEngine

app = Flask(__name__)
app.config.from_object(Config)

db = MongoEngine()
db.init_app(app)

from application import routes
Run Code Online (Sandbox Code Playgroud)

但是,在导入时from flask_mongoengine import MongoEngine,我收到 ImportError:

ImportError: cannot import name 'JSONEncoder' from 'flask.json' 
Run Code Online (Sandbox Code Playgroud)

我的 venv 看起来像:

blinker==1.6.2
click==8.1.3
colorama==0.4.6
dnspython==2.3.0
email-validator==2.0.0.post2
Flask==2.3.2
flask-mongoengine==1.0.0
Flask-WTF==1.1.1
idna==3.4
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
mongoengine==0.27.0
pymongo==4.4.0
python-dotenv==1.0.0
Werkzeug==2.3.6
WTForms==3.0.1
Run Code Online (Sandbox Code Playgroud)

我可以在这里做些什么来避免这种冲突吗?谢谢!

python mongodb flask python-venv

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

ggplot2:如何在 R 中正确格式化 sec.axis

我正在尝试在 ggplot 图中使用 geom_line() 绘制 3 条线。其中一个变量具有不同的比例,因此我尝试使用 sec.axis 来显示它。

library(ggplot2)
library(reshape2)

tab <- data.frame(year = seq(1979,2010), freq = runif(32, 212,283), max = 
runif(32, 962.1, 993.4), med = runif(32, 972.1, 989.3), min = runif(32, 
955.7, 978.3))

summary(tab) # the column freq (frequency) has a different scale comparing with the other ones
Run Code Online (Sandbox Code Playgroud)

我尝试过的一些代码。

tab <- melt(tab, id = c("year")) # melt the data

ggplot(tab, aes(x = year, y = value)) + 
theme_bw() + 
scale_colour_manual(values =c('red','blue', 'green')) + 
geom_line() + 
scale_y_continuous(limits = c(900,1000), …
Run Code Online (Sandbox Code Playgroud)

r scale ggplot2

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

如何为多个 list.files 提取 R 中“/”之前的路径?

假设我在 R 中使用list.files()获得了下一个向量:

paths <- c("/home/user/myfolder/ERA/amsterdam/amsterdam1.nc", "/home/user/myfolder/ERA/amsterdam/amsterdam2.nc", 
       "/home/user/myfolder/CLMcom/HadCruz/run1/paris/paris1.nc", "/home/user/myfolder/CLMcom/HadCruz/run1/paris/paris2.nc",
       "/home/user/myfolder/CNRM/CLMcom/rcp85/run1/helsinki/helsinki1.nc")

nchar(paths)
[1] 47 47 55 55 63
Run Code Online (Sandbox Code Playgroud)

如您所见,矢量路径确实具有不同大小的对象。

我想从路径中获取包含所有对象但没有内部文件名的新向量,例如:

> new_paths
[1] "/home/user/myfolder/ERA/amsterdam/"                   
"/home/user/myfolder/ERA/amsterdam/"                  
[3] "/home/user/myfolder/CLMcom/HadCruz/run1/paris/"       
"/home/user/myfolder/CLMcom/HadCruz/run1/paris/"      
[5] "/home/user/myfolder/CNRM/CLMcom/rcp85/run1/helsinki/"
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为我想创建一个循环,其中对于向量 new_paths中的每个i,我将使用system运行一个终端命令

我知道strsplit有可能,但是,我不是在 R 中操作文件名的专家。有人知道这种可能性吗?

substring r character strsplit

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

根据分位数对数据框进行分组

如果我有此数据框:

df <- data.frame(time = seq(as.Date('2000-01-01'), length.out = 200, by = 'days'),
             a = rnorm(200,8.4, 22), b=rnorm(200,8.4, 22), d= rnorm(200,8.4, 22), 
e=rnorm(200,8.4, 22))
Run Code Online (Sandbox Code Playgroud)

子集化最简单的方法是什么,df以便每列的值都应大于百分之十,而小于百分之九十?

我可以使用循环来做到这一点,即:

for (i in names(df[,2:5])){
  print(i)
  column <- df[,c('time', i)]
  q <- unname(quantile(column[,2], probs = c(0.1, 0.9))) # just for one column
  column <- column[column[,2] > q[1] &column[,2] < q[2],]
  df <- merge(df, column, by = 'time', all.x = T)
}
Run Code Online (Sandbox Code Playgroud)

但是有更简单更优雅的方式使用函数或包这样做dplyr。谢谢!

r function subset dplyr

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

标签 统计

r ×3

character ×1

dplyr ×1

flask ×1

function ×1

ggplot2 ×1

mongodb ×1

python ×1

python-venv ×1

scale ×1

strsplit ×1

subset ×1

substring ×1