小编sna*_*erb的帖子

在SQLAlchemy列类型和python数据类型之间轻松转换?

我正在寻找一种简单的python方法来比较SQLAlchemy中的列类型和基类型.例如,如果我的列类型是任何长度的VARCHAR,我想将其作为字符串读取.

我可以读取列类型没关系,但我不确定一种简单的方法来验证它的基本类型...如果我可以使用"if isinstance(mycolumn,int)"这样的东西会很好 - 但我是新的到python,不知道这将如何工作.

这是我到目前为止所拥有的:

from sqlalchemy import MetaData
from sqlalchemy import create_engine, Column, Table
engine = create_engine('mysql+mysqldb://user:pass@localhost:3306/mydb', pool_recycle=3600)
meta = MetaData()
meta.bind = engine
meta.reflect()
datatable = meta.tables['my_data_table']
[c.type for c in datatable.columns]
Run Code Online (Sandbox Code Playgroud)

输出:

[INTEGER(display_width=11), DATE(), VARCHAR(length=127), DOUBLE(precision=None, scale=None, asdecimal=True)]
Run Code Online (Sandbox Code Playgroud)

我的最终目的是双重的,首先是因为当我将它加载到我的jQuery jqGrid中时,我希望根据类型格式化输出.第二,我正在慢慢地将非规范化数据表转换为规范化结构,并且希望确保我保持我的类型一致 - (以确保我在前一个表中的数字存储为数字而不是字符串...... )

python sqlalchemy

7
推荐指数
3
解决办法
7665
查看次数

注释“xy”与模型上的字段冲突 - django

我有模型:

class Topiccenter(models.Model):
  name = models.TextField()
  def sumentries(self):
    return self.tc_books.count() + self.tc_journals.count()

class Book(models.Model):
  name = models.TextField()
  tc = models.ForeignKey(Topiccenter,related_name="tc_books")

class Journal(models.Model):
  name = models.TextField()
  tc = models.ForeignKey(Topiccenter,related_name="tc_journals")
Run Code Online (Sandbox Code Playgroud)

我正在尝试做这样的事情:

Topiccenter.objects.annotate(tc_books=Sum('tc_books'),
                              journals=Sum('tc_journals')
                              ).extra(
                                   select={'sum_entries':'tc_books+journals'}, 
                                   order_by=('sum_entries',)
                              )
Run Code Online (Sandbox Code Playgroud)

但它是说:The annotation 'tc_books' conflicts with a field on the model.

python django django-models

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

ValueWarning:未提供频率信息,因此将使用推断的频率MS

我尝试通过sm.tsa.statespace.SARIMAX拟合Autoregression。但是我遇到警告,然后我想为此模型设置频率信息。谁曾经遇到过,您能帮我吗?

fit1 = sm.tsa.statespace.SARIMAX(train.Demand, order=(1, 0, 0), 
                            enforce_stationarity=False,
                            enforce_invertibility=False).fit()
y_hat['AR'] = fit1.predict(start="1975-01-01", end="1975-12-01", dynamic=True)
plt.figure(figsize=(16,8))
plt.plot( train['Demand'], label='Train')
plt.plot(test['Demand'], label='Test')
plt.plot(y_hat_avg['AR'], label='AR')
plt.legend(loc='best')
plt.show()

C:\Users\thach.le\Anaconda3\lib\site-packages\statsmodels-0.8.0-py3.6-win- 
amd64.egg\statsmodels\tsa\base\tsa_model.py:165: ValueWarning: No frequency 
information was provided, so inferred frequency MS will be used.
% freq, ValueWarning)
Run Code Online (Sandbox Code Playgroud)

谢谢

python frequency statsmodels

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

Python 内部 hash() 函数的复杂性

我知道哈希表查找的平均情况是O(1),但这是否包括计算给定输入的哈希值本身所需的时间?我试过在 google 上寻找答案,阅读了所有需要的文档,但找不到hash()Python 中内部函数的实现。一些网站状态计算散列值取的时间恒定量,有人说是O(k)其中k是输入的长度。如果你能帮我找到正确的答案,我会很高兴。提前致谢 :)

python hash big-o

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

Webapp2 Python set_cookie 不支持同站 cookie?

webapp2 文档中没有提到设置SameSitecookie的属性,它似乎是建立在 WebOB 的响应处理程序上的,我检查了 webOB 文档页面,它清楚地显示了'SameSite' flag as an accepted cookie parameter

尽管如此,我还是尝试在 set cookie 中设置它:

self.response.set_cookie(name, secure_cookie, path='/', secure=True,
httponly=True, samesite='lax', expires=expireDate)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

TypeError: set_cookie() got an unexpected keyword argument 'samesite'

我知道可以使用,self.response.headers.add_header('Set-Cookie', ...但我希望我可以self.response.set_cookie按照 webapp2 文档使用

python cookies google-app-engine webob webapp2

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

Flask-Marshmallow 模式上的验证错误

我创建一个简单的Web API,与flasksqlalchemymarshmallow为串行,这里是UserModel

class UserModel(db.Model):
    __tablename__ = 'users'

    id            = db.Column(db.Integer, primary_key = True)
    username      = db.Column(db.String(120), unique = True, nullable = False)
    password      = db.Column(db.String(120), nullable = False)
    user_role     = db.Column(db.String(10), nullable = False)
    access_token  = db.Column(db.String(120), unique = True, nullable = True, default='as' )
    refresh_token = db.Column(db.String(120), unique = True, nullable = True, default='as' )

Run Code Online (Sandbox Code Playgroud)

和模式,

class UserSchema(Schema):
    username = fields.Str()
    password = fields.Str()
    user_role = fields.Str()
    access_token = fields.Str()
    refresh_token …
Run Code Online (Sandbox Code Playgroud)

python marshmallow

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

使用 Python3 将 meld 设置为 git mergetool

我试过将 meld 设置为我的合并工具以与 git 一起使用:

git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
Run Code Online (Sandbox Code Playgroud)

如对以下问题的回答所述:

如何将 Meld 设置为 git mergetool

我曾经在我的旧工作机器上运行过这个,但现在在我安装了 Python3 而不是 2.7 的新机器上,每当我尝试 git mergetool 时,我都会收到以下错误:

C:/Program Files/Git/mingw64/libexec/git-core/mergetools/meld: c:/Progra~2/Meld/bin/meld: C:/msys64/MINGW32/bin/python3.exe: 错误解释器: 否这样的文件或目录

任何想法我需要采取哪些额外步骤才能使其与 Python3 一起使用?

编辑:我也尝试过直接指向 Meld.exe 但这会导致以下崩溃:

在此处输入图片说明

python git meld git-merge python-3.x

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

Python 致命错误:无法获取随机数来初始化 Python

Python 致命错误:无法获取随机数来初始化 Python

环境 Windows 10、VSC 15

使用 CreateProcessA winapi 并传递 lpenvironment 变量来使用脚本运行 python。当 lpenvironment 传递 null 时,它工作正常。如果我设置环境变量 PATH 和 PYTHONPATH = "paths",并传递 LPSTR(env.c_Str()),它会在运行时抛出上述错误。python版本是3.5.6

有什么帮助吗?


更多细节。

  1. 我使用 CreateProcessA WINAPI 运行子进程 python.exe“C:\Program Files\endpoint\Python_ML\mlprocessor_server.py”。
  2. 我想使用两个环境变量“PYTHONPATH”和“PATH”运行子进程。PYTHONPATH="C:\Program Files\endpoint\Python";"C:\Program Files\endpoint\Python\Scripts";"C:\Program Files\endpoint\Python\include";"C:\Program Files\endpoint \Python\Lib";"C:\Program Files\endpoint\Python\libs";"C:\Program Files\endpoint\Python\Lib\site-packages";"C:\Program Files\endpoint\Python_ML" 路径="C:\Program Files\endpoint\Python";"C:\Program Files\endpoint\Python\Lib";"C:\Program Files\endpoint\Python\Scripts";"C:\Program Files\endpoint\ Python\libs”

由于某种原因,CreateProcessA 中的第 7 个参数失败,如果为 null,则 python.exe 运行成功,否则打印“Fatal Python error: failed to get random number to Initialize Python”。

我设置参数的方式如下...

std::string Base = Configuration::getBasePath();

std::string environPython = Base;
environPython.append("\\Python;");
environPython.append(Base);
environPython.append("\\Python\\Scripts;");
environPython.append(Base);
environPython.append("\\Python\\include;");
environPython.append(Base);
environPython.append("\\Python\\Lib;"); …
Run Code Online (Sandbox Code Playgroud)

c++ python windows windows-10 visual-studio-2015

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

调用 GetSecretValue 操作时发生错误 (UnrecognizedClientException):请求中包含的安全令牌无效

请检查下面的屏幕截图,它有问题。AWS 凭证配置正确,当我们在 boto3 中单独使用时它工作正常,但在 SAM lambda 函数中触发它出现此错误。在此输入图像描述

尝试了所有解决方案,例如检查“aws configure”和取消设置AWS_SECURITY_TOKEN以及其他来源中提到的其他解决方案也尝试过但不起作用。

并在代码中尝试做

session = boto3.session.Session()
secretsmanager = session.client('secretsmanager')

try:
        get_secret_value_response = secretsmanager.get_secret_value(
            SecretId=secret_name
        )
        secret = json.loads(get_secret_value_response['SecretString'])
    except ClientError as e:
        print(e)
        # print(sys.exc_info(),traceback.print_exc(file=sys.stdout))
    except Exception as e:
        print(sys.exc_info(),traceback.print_exc(file=sys.stdout))
        print(e)
Run Code Online (Sandbox Code Playgroud)

python boto3 aws-sam

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

pydantic.error_wrappers.ValidationError:值不是有效列表(type=type_error.list)

FastAPI 新手


收到“值不是有效列表 (type=type_error.list)”错误

每当我尝试返回 {"posts": post}

@router.get('', response_model = List[schemas.PostResponseSchema])
def get_posts(db : Session = Depends(get_db)):
 print(limit)
 posts = db.query(models.Post).all()
 return {"posts" : posts}
Run Code Online (Sandbox Code Playgroud)

尽管如果我返回这样的帖子,它会起作用:

return posts
Run Code Online (Sandbox Code Playgroud)

这是我的响应模型:

class PostResponseSchema(PostBase):
 user_id: int
 id: str
 created_at : datetime
 user : UserResponseSchema

 class Config:
     orm_mode = True
Run Code Online (Sandbox Code Playgroud)

及型号:

class Post(Base):
 __tablename__ = "posts"
 id =  Column(Integer, primary_key=True, nullable=False)
 title = Column(String, nullable=False)
 content = Column(String, nullable = False)
 published = Column(Boolean, server_default = 'TRUE' , nullable = False)
 created_at = Column(TIMESTAMP(timezone=True), …
Run Code Online (Sandbox Code Playgroud)

python api pydantic fastapi

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