我正在尝试运行一个简单的 Flask API,但它没有按预期工作。我在 Python 方面不是很有经验,所以发现错误并解决它非常具有挑战性。如果有人可以提供帮助,我将不胜感激。
系统设置如下:
这些是要求:
$ pip freeze
ansimarkup==1.4.0
asn1crypto==0.24.0
better-exceptions-fork==0.2.1.post6
certifi==2019.3.9
cffi==1.12.3
chardet==3.0.4
Click==7.0
colorama==0.4.1
cryptography==2.7
Flask==1.0.3
idna==2.8
itsdangerous==1.1.0
Jinja2==2.10.1
loguru==0.2.5
MarkupSafe==1.1.1
pycparser==2.19
Pygments==2.4.2
pyOpenSSL==19.0.0
PySocks==1.7.0
requests==2.22.0
six==1.12.0
urllib3==1.24.2
Werkzeug==0.15.4
Run Code Online (Sandbox Code Playgroud)
我的项目结构是这样的:
??? statsapi
? ??? data_store.py
??? app.py
??? client.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)
这是 app.py 代码:
??? statsapi
? ??? data_store.py
??? app.py
??? client.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)
data_store.py 代码:
#!/usr/bin/env python
from flask import Flask, request, jsonify
from loguru import …Run Code Online (Sandbox Code Playgroud) 有时,在进行探索性分析或生成报告时,我们希望绘制许多变量的单变量分布.我可以在经过一些整洁的伎俩之后面对这个情节,但是有序因素,我想继续按照情节订购.
因此,为了更有效地完成它,我构建了一个简单dplyr/ ggplot基于函数.我使用vcd包的关节炎数据集在下面做了这个例子.
library(dplyr)
library(ggplot2)
data(Arthritis, package = "vcd")
head(Arthritis)
plotUniCat <- function(df, x) {
x <- enquo(x)
df %>%
filter(!is.na(!!x)) %>%
count(!!x) %>%
mutate(prop = prop.table(n)) %>%
ggplot(aes(y=prop, x=!!x)) +
geom_bar(stat = "identity")
}
plotUniCat(Arthritis, Improved)
Run Code Online (Sandbox Code Playgroud)
我可以用很短的方式绘制格式化的图形,这很酷,但只有一个变量.
我尝试使用for循环调用多个变量,但它不起作用.代码运行,但没有任何反应.
variables <- c("Improved", "Sex", "Treatment")
for (i in variables) {
plotUniCat(Arthritis, noquote(i))
}
Run Code Online (Sandbox Code Playgroud)
我搜索了这个,但对我来说仍然不清楚.有人知道我做错了什么或如何使它有效?
提前致谢.
我正在尝试处理for循环中的两个可能的错误,该循环要求stplanr::dist_google与API进行交互。我知道这些错误,因此我想在发生错误时采取特定的措施。
如果我尝试仅处理可能的错误之一,则它可以工作:
data(cents, package = "stplanr")
data(flow, package = "stplanr")
od <- stplanr::od2odf(flow=flow, zones=cents)
uma_linha <- data.frame(from_addresses=NA, to_addresses=NA, distances=NA,
duration=NA, currency=NA, fare=NA)
output <- data.frame()
for (linha in 1:nrow(od)) {
o <- od[linha, 3:4]
d <- od[linha, 5:6]
output <- tryCatch(
{
rbind(output, stplanr::dist_google(from = o, to = d,
mode = 'walking'))
},
error = function(na) {
message("Erro: No results for this request (e.g. due to lack of support for this mode between the from and to locations)") …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些分类变量的data.frame.我们假设sentences是以下变量之一:
sentences <- c("Direito à participação e ao controle social",
"Direito a ser ouvido pelo governo e representantes",
"Direito aos serviços públicos",
"Direito de acesso à informação")
Run Code Online (Sandbox Code Playgroud)
对于每个值,我想只提取每个单词的第一个字母,忽略单词是否有4个字母或更少(e,de,à,a,aos,ser,pelo),我的目标是创建首字母缩略词变量.我期待以下结果:
[1] "DPCS", "DOGR", "DSP", "DAI
Run Code Online (Sandbox Code Playgroud)
我尝试使用在此处stringr创建的正则表达式模式创建模式子集:
library(stringr)
pattern <- "^(\b[A-Z]\w*\s*)+$"
str_subset(str_to_upper(sentences), pattern)
Run Code Online (Sandbox Code Playgroud)
但是在创建pattern对象时出错:
Error: '\w' is an escape sequence not recognized in the string beginning with ""^(\b[A-Z]\w"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在此先感谢您的帮助.