小编Esp*_*azi的帖子

PostgreSQL-过滤日期范围

我是一名SQL开发人员,大部分时间都在MSSQL上度过.我正在寻找一种更好的方法来过滤PostgreSQL数据库中的"Timestamp without timezone"字段.

我正在使用:

Where 
DateField >= '2010-01-01' and 
DateField < '2012-01-01'
Run Code Online (Sandbox Code Playgroud)

但鉴于我不是语法方面的专家,我必须认为有更好的方法.

有什么建议?谢谢.

postgresql date-range

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

如何使用环境变量或类似的变量在 pyproject.toml 中指定 github 访问令牌?

我想从我的私人 GitHub 存储库安装一个包。使用 GitHub 访问令牌,我可以这样指定:

[tool.poetry.dependencies]
python = "^3.8"
<package> = {git = "https://<token>@github.com/<user>/<repo>", rev = "0.1.3"}

Run Code Online (Sandbox Code Playgroud)

它有效。但是,我不想pyproject.toml直接指定我的访问令牌。还有其他方法可以指定吗?

github python-poetry

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

在 Jupyter Notebook 中更改数据框的单元格宽度

我有一个包含长文本描述的列的数据框。

我想显示所有文本而不截断它,但是以列变宽而不是使行变高的方式显示。


如果我让熊猫的默认设置,我得到下一个:

在此处输入图片说明


但是,如果我尝试使用 删除 truncate pd.set_option('display.max_colwidth', -1),则行会变高,而行宽几乎相等:

在此处输入图片说明

python pandas jupyter-notebook

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

Python Celery 与 now 函数进行任务调度的 cronjob 计时不一致

情况

我有一个芹菜任务,我在不同的时区为每个客户运行。

基本上,对于数据库中的每个客户,我都会获取时区,然后以这种方式设置 celery 任务。

'schedule': crontab(minute=30, hour=14, nowfun=self.now_function)
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的是在客户时区 14:30 运行的任务。因此就有了 now_function。

我的now_function只是获取客户时区的当前时间。

def now_function(self):
    """
    return the now function for the task
    this is used to compute the time a task should be scheduled for a given customer
    """
    return datetime.now(timezone(self.customer.c_timezone))
Run Code Online (Sandbox Code Playgroud)

怎么了

我的任务运行时间不一致,有时它们在预期时间运行,所以假设客户时区是 14:30,如果时区是America/Chicago20:30,那么这是我的预期行为。

有时,它在 14:30 运行,这正是 UTC 时间。

我正在跟踪任务在正确时间运行的当天和卡片在错误时间运行的当天是否存在某种模式。

附加信息

我已在 celery 4.4.2 和 5.xx 上尝试过此操作,但它仍然具有相同的行为。

这是我的芹菜配置。

CELERY_REDIS_SCHEDULER_URL = redis_instance_url
logger.debug("****** CELERY_REDIS_SCHEDULER_URL: ", CELERY_REDIS_SCHEDULER_URL)
logger.debug("****** environment: ", environment)
redbeat_redis_url = CELERY_REDIS_SCHEDULER_URL
broker_url = …
Run Code Online (Sandbox Code Playgroud)

python cron scheduling celery celerybeat

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

为什么在排序索引上进行索引查找时出现 PerformanceWarning?

有谁知道为什么这会给出 PerformanceWarning?

d=pd.DataFrame(
    [
        [1,2,3],
        [1,2,4],
        [1,None,5],
        [2,3,5],
    ],
    columns=['i','j','k']
)
print d.dtypes
d = d.set_index(['i','j'])['k']
d = d.sort_index()

print d.loc[(2,3)] #  PerformanceWarning: indexing past lexsort depth may impact performance.
Run Code Online (Sandbox Code Playgroud)

我从文档中的理解是 PerformanceWarning 遵循不排序索引(索引已排序)。

python pandas

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

烧瓶“get_or_404”类似功能,但有另一个状态码

我知道的:

我们都知道,flask 有一个有用的功能,query.get_or_404我们可以将它调用到任何类对象并返回该对象,或者如果找不到该对象则引发 404 错误。

问题:

我有一个非常大的应用程序并使用该函数进行查询,但是当我将数据发送到前端和其他使用我的 API 的应用程序时,它现在变得有点混乱。当未找到他们查询的对象时,它将返回 404,并且在未找到页面时也会发生相同的行为。

我想要达到的目标:

我想要一个有意义的响应,对于每个未找到的对象都是不同的,对于正常的 404 错误消息是不同的。

例子 :

如果我有这个查询:

user = User.query.get_or_404(id)

如果找不到用户,我想引发 HTTP 错误并返回类似的消息 user not found

到目前为止我尝试过的:

    user = User.query.get(id)
    if user:
        #do something
    else 
        return {'status':'01', 'description': 'user not found'} 
        # or raise a http error 
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是我无法维护我正在处理的应用程序,它需要我在使用 get_or_404 和该代码的任何地方进行更改。

我在想什么:

创建一个类似query.get_or_404但带有另一个状态消息的函数query.get_or_415,例如,并为 415 HTTP 代码添加一个错误处理程序,以便如果找不到对象,它可以返回{'status':'0message:ge : 'object of the class is not found'}

我怎样才能实现它?

我已经在 Flask 中检查过该功能,但找不到它

有人有建议吗?

python sqlalchemy http-error flask flask-sqlalchemy

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

无法通过 POSTMAN 访问 Twitter API

我试图使用 Twitter API 从 POSTMAN 检索数据,但遇到错误。

我在 Twitter 中创建了一个项目,然后创建了一个与 Twitter 项目关联的应用程序。检索到密钥、秘密和承载令牌。我使用不记名令牌点击以下端点并收到错误

端点:https://api.twitter.com/2/tweets? ids=1261326399320715264,1278347468690915330

错误:验证对 Twitter API v2 端点的请求时,您必须使用附加到项目的 Twitter 开发人员应用程序中的密钥和令牌。您可以通过开发者门户创建项目。

然后我使用带有 Consumer Key、Consumer Secret、Access Token 和 Access Secret 的 OAuth 1.0 热相同的端点,并收到以下错误

{
    "title": "Unauthorized",
    "type": "about:blank",
    "status": 401,
    "detail": "Unauthorized"
}
Run Code Online (Sandbox Code Playgroud)

我不明白我在那里缺少什么。有人可以帮忙解决这个问题吗?

由 Espoir Murhabazi 编辑:我尝试使用 Beared 令牌进行身份验证,如本示例所示,但徒劳无功

我尝试使用 tweepy 使用的身份验证方案,但也是徒劳的。我看起来我们缺少一些东西。

这是我尝试过的完整示例:

import requests
import os
import sys
from tweepy import OAuthHandler
from dotenv import load_dotenv


load_dotenv()


def get_twitter_auth():
    """Setup Twitter authentication.

    Return: tweepy.OAuthHandler object …
Run Code Online (Sandbox Code Playgroud)

twitter postman

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

Python Telegram Bot 如何等待用户回答问题并返回

语境:

我正在使用PyTelegramBotAPiPython Telegram Bot

当用户开始对话时,我正在运行一个代码。

当用户开始对话时,我需要向他发送第一张图片和一个问题他是否看到图片中的东西,该函数需要等待用户输入并返回他是否看到它。

之后,我将需要继续循环发送图片并等待答案并对其运行二分算法。

到目前为止我尝试过的:

我尝试使用等待响应的回复标记或带有处理程序的内联键盘,但我被卡住了,因为我的代码正在运行而没有等待用户输入。

编码:

@bot.message_handler(func=lambda msg: msg in ['Yes', 'No'])
@bot.message_handler(commands=['start', 'help'])
def main(message):
    """
    This is my main function
    """
    chat_id = message.chat.id
    try:
        reply_answer = message.reply_to_message.text
    except AttributeError:
        reply_answer = '0'
    # TODO : should wait for the answer asynchnonossly
    def tester(n, reply_answer):
        """
        Displays the current candidate to the user and asks them to
        check if they see wildfire damages.
        """
        print('call......')
        bisector.index = n
        bot.send_photo(
            chat_id=chat_id,
            photo=bisector.image.save_image(), …
Run Code Online (Sandbox Code Playgroud)

python telegram python-telegram-bot telegram-bot

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

获取给定服务器ID的discord服务器的成员

我想创建一个给出服务器ID的脚本,它应该返回该discord服务器的所有成员.并且给定用户验证令牌,它应该检查他是否是该服务器的成员.

我一直在寻找如何做到这一点,但徒劳无功!我已经尝试了这3个问题,但他们没有给我任何关于我想做什么的信息.

问题1

问题2

问题3

以下是我根据文档和入门教程尝试的内容:

import discord
import asyncio
import os


client = discord.Client()
email  = os.getenv('Email')
password = os.getenv('Password')
server = discord.Server(id='416940353564704768')
@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')
    print('get all channel a client belong to ')
    if server.members:
        for member in server.members:
            print('name{}'.format(member.user.name) )
    else:
        print('any')

client.run(email, password)
Run Code Online (Sandbox Code Playgroud)

但它总是打印任何.任何帮助将不胜感激,看起来我错过了一些关于不和谐的东西.

python discord discord.py

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

熊猫数据框按日期范围过滤:今天-今天+ 1年

我可以使用日期范围过滤数据框:

df[(df['Due Date'] >= '2017-01-01') & (df['Due Date'] <= '2017-02-01')]
Run Code Online (Sandbox Code Playgroud)

但我希望能够过滤一年

python pandas

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

使用 GET 方法提交带有烧瓶 wtforms 的表单

我有 2 条路线:

@app.route('/activity', methods=["GET"])
def addactivity():
    return render_template('activity.html')
Run Code Online (Sandbox Code Playgroud)

在 acitvity.html 中,我有一个包含一些字段的表单,我想将此表单提交到另一条路线:

@app.route('/students', methods=["GET"])
def addstudents():
    return render_template('students.html')
Run Code Online (Sandbox Code Playgroud)

因此,当我在 acitivity.html 中提交表单时,我将被重定向到

/students?field1=value1&field2=value2 等等...

对于活动表单,我使用带有验证器的 wtforms:DataRequired() 或 InputRequired()

问题是,当我在 addtudents 路由中使用 form.validate() 时,即使表单已验证或未验证,它也会将我重定向到 student.html 路由。我想以防表单未验证以显示 activity.html 中的错误.这怎么可能?

我是 Flask 的新手,也许我的整个代码是错误的,但概念是,如果活动表单经过验证,我将被重定向到学生路线,否则将在活动路线中显示错误。此外,我需要提交学生路线中的表格与前一个表格的参数。

python forms flask wtforms

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

无法在视图函数中的2个烧瓶请求之间共享变量

我想要在2个烧瓶请求之间共享一个变量!该变量是一个大熊猫数据框。

我在这个答案 中已经读到,我需要使用flask global中的 g !基本上,我有2视图功能是这样的:

from flask import g
@home.route('/save', methods=['GET'])
def save_ressource():
    an_object = {'key': 'value'}
    setattr(g, 'an_object', an_object)
    return 'sucees'
@home.route('/read', methods=['GET'])
def read_ressource():
    an_object = getattr(g, 'an_object', None)
    if an_object:
        return 'sucess'
    else:
        return 'failure'
Run Code Online (Sandbox Code Playgroud)

但这总是返回失败,即:无

当我在这里阅读文档时,它说:

从Flask 0.10开始,它存储在应用程序上下文中,而不再存储在请求上下文中,这意味着只有绑定了应用程序上下文而不是请求时,它才可用

我的问题是如何解决这个问题?

如文档中所述,如何绑定应用程序上下文?

我应该改为使用会话吗?

任何帮助将不胜感激

python global flask

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

熊猫添加带有 if 条件的列

嗨,我不确定如何将新列 z 添加到我现有的 df 中,其中 z = x if x is not 0 else y 。

例如:

Name  x  y  |z (new col)
A     1  5  |1
B     2  6  |2
C     0  3  |3
D     0  0  |0
Run Code Online (Sandbox Code Playgroud)

np.where 在这种情况下适用吗?

谢谢!

python pandas

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