我有一个烧瓶应用程序,可以成功初始化并连接到Postgresql数据库.但是,当我尝试将此应用程序停靠时,我收到以下错误消息."SQLALCHEMY_DATABASE_URI"是正确的,我可以连接到它,所以我无法弄清楚我哪里出错了.
docker-compose日志
app_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/url.py", line 60, in __init__
app_1 | self.port = int(port)
app_1 | ValueError: invalid literal for int() with base 10: 'None'
Run Code Online (Sandbox Code Playgroud)
Postgres数据库在Docker容器中成功连接
postgres_1 | LOG: database system is ready to accept connections
Run Code Online (Sandbox Code Playgroud)
config.py
from os import environ
import os
RDS_USERNAME = environ.get('RDS_USERNAME')
RDS_PASSWORD = environ.get('RDS_PASSWORD')
RDS_HOSTNAME = environ.get('RDS_HOSTNAME')
RDS_PORT = environ.get('RDS_PORT')
RDS_DB_NAME = environ.get('RDS_DB_NAME')
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://{username}:{password}@{hostname}:{port}/{dbname}"\
.format(username = RDS_USERNAME, password = RDS_PASSWORD, \
hostname = RDS_HOSTNAME, port = RDS_PORT, dbname = RDS_DB_NAME)
Run Code Online (Sandbox Code Playgroud)
flask_app.py(入口点) …
我一直在尝试部署在可能的最简单的方式多容器泊坞窗环境AWS弹性魔豆.我已上载的图像搬运工这产生构成搬运工-compose.yml单个公共泊坞毂储存库中的容器(例如,*名为myUsername/production_app,名为myUsername/production_celery,名为myUsername/postgres的,名为myUsername/production_client).
"docker-compose up"成功运行(docker-compose日志中没有错误)
接下来,我根据我的docker-compose.yml创建了下面的Dockerrun.aws.json,创建了一个新的Elastic Beanstalk应用程序,并在创建Web服务器环境时继续上传该文件.
但是,应用程序无法部署时出现以下错误:
XXXX/StartupStage1/AppDeployEnactHook/03start-task.sh]:活动失败.
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "app",
"image": "myusername/production_app",
"essential": true,
"memoryReservation": 200,
"portMappings": [
{
"hostPort": 5000,
"containerPort": 5000
}
},
{
"name": "celery",
"image": "myusername/production_celery",
"essential": true,
"memoryReservation": 200,
},
{
"name": "client",
"image": "myusername/production_client",
"essential": true,
"memoryReservation": 200,
"portMappings": [
{
"hostPort": 3007,
"containerPort": 3000
}
]
},
{
"name": "postgres",
"image": "myusername/postgres",
"essential": true,
"memoryReservation": 200,
"portMappings": [
{
"hostPort": 5432,
"containerPort": 5432
}
]
}
] …Run Code Online (Sandbox Code Playgroud) amazon-web-services docker amazon-elastic-beanstalk docker-compose
我有一个由一列字符串组成的数据框。我想提取这些字符串的数字。但是,有些值以米为单位,有些以公里为单位。我如何检测数字旁边是否有“m”或“km”,标准化单位然后将数字提取到新列?
details numbers
Distance 350m
Longest straight 860m
Top speed 305km
Full throttle 61 per cent
Run Code Online (Sandbox Code Playgroud)
期望的输出:
details numbers
Distance 350
Longest straight 860
Top speed 305000
Full throttle 61
Run Code Online (Sandbox Code Playgroud) 这可能是一件非常简单的事情,对此有很多问答,但是我找不到解决问题的方法。
我正在尝试使用d3-request模块解析整个CSV文件,并在React组件中使用此数据设置状态。根据我的理解,d3-request模块一个一个地解析CSV文件的每一行,所以我不能简单地这样做:
import {csv} from 'd3-request';
componentWillMount() {
csv('./data/test.csv', (error, data) => {
if (error) {
this.setState({loadError: true});
}
this.setState({
data: data
});
})
}
Run Code Online (Sandbox Code Playgroud)
所以我想改为这样做。“ ...”或传播语法有助于复制每个数组。
componentWillMount() {
csv('./data/elements-by-episode.csv', (error, data) => {
if (error) {
this.setState({loadError: true});
}
this.setState({
data: data.map(d => ({...d}))
});
})
}
render() {
console.log(this.state.data);
}
Run Code Online (Sandbox Code Playgroud)
但是console.log会打印出页面本身的html内容。
test.csv
'title', 'A', 'B'
'E01', 1, 0
'E02', 5, 0
'E03', 10, 2
Run Code Online (Sandbox Code Playgroud)
希望在解析后将CSV转换为此:
this.state.date = [
['title', 'A', 'B'],
['E01', 1, 0],
['E02', 5, 0],
['E03', …Run Code Online (Sandbox Code Playgroud) 我不确定在执行单元测试时如何传入变量.这些变量是从未放置在单元测试中的另一个函数创建的.
方法1:
classdef myTest < matlab.unittest.TestCase
properties
A, B, C
end
methods (Test)
function testDataCoverage(testCase)
expSol = afunction(A, B, C)
actSol = 10
testCase.verifyEqual(testCase, actSol, expSol)
end
end
end
Run Code Online (Sandbox Code Playgroud)
我接下来尝试将变量创建函数(getData)放在单元测试中但遇到此错误:
具体类myTest没有为dataCoverage方法定义名为BNew的TestParameter属性.实现属性或将类定义为Abstract.
方法2:
classdef myTest < matlab.unittest.TestCase
properties
end
methods (Test)
function testDataCoverage(testCase)
[A, B, C] = getData()
expSol = afunction(A, B, C)
actSol = 10
testCase.verifyEqual(testCase, actSol, expSol)
end
function [A, B, C] = getData()
...code here...
end
function Sol = afunction(A, BNew, C)
...code here...
end
end
end
Run Code Online (Sandbox Code Playgroud) 如何过滤数据框以仅显示多列中具有重复项的行?
示例数据框:
col1 col2 col3
A1 B1 C1
A1 B1 C1
A1 B1 C2
A2 B2 C2
Run Code Online (Sandbox Code Playgroud)
预期输出:
col1 col2 col3
A1 B1 C1
A1 B1 C1
Run Code Online (Sandbox Code Playgroud)
我的尝试:
df[df.duplicated(['col1', 'col2', 'col3'], keep=False)]
Run Code Online (Sandbox Code Playgroud)
但这并没有给出预期的结果。
python ×3
docker ×2
pandas ×2
d3.js ×1
flask ×1
javascript ×1
jsx ×1
matlab ×1
postgresql ×1
reactjs ×1
sqlalchemy ×1
unit-testing ×1