RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

全部问题

Martin Hope
Jeid
Asked: 2024-10-02 15:39:42 +0000 UTC

PostgreSQL 在 JSON 中搜索对象数组

  • 6

如何进行正确的 SQL 查询以通过 JSON 字段进行搜索示例表 table1

ID 部分
1 [{"key":"xxx", "name":"命名一"},{"key":"yyy", "name":"命名二"}]
2 [{"key":"zzz", "name":"命名 Tre"},{"key":"xxx", "name":"命名 One"}]
3 [{"key":"aaa", "name":"名称为"},{"key":"zzz", "name":"名称 Tre"}]

你需要提出一个请求,比如

SELECT id FROM table1 WHERE sections->key IN('xxx','zzz')

因此,它应该返回 1,2,3

此外,如何使用此 JSON 字段在 Laravel 中组织正确的关系将是一个优势。

sql
  • 2 个回答
  • 48 Views
Martin Hope
hhhscvx
Asked: 2024-10-02 14:09:28 +0000 UTC

由于不同客户端而导致代码过期问题:“[400 PHONE_CODE_EXPIRED]”

  • 5

需要pyrogram根据对 API 的请求创建和授权会话。

get-code有效,但sign-in由于代码过期而失败。我很确定这是因为我Client发布了不同代码并执行操作sign_in,但我不知道如何使用代码。

关于可以做什么的任何想法?

代码:

from fastapi import APIRouter, Body
from pyrogram import Client
from pyrogram.errors import SessionPasswordNeeded, BadRequest
from pyrogram.types import SentCode

from core import settings
from .redis_db import save_to_redis, get_from_redis, delete_from_redis

router = APIRouter(tags=['Telegram'])

@router.post('/telegram/get-code')
async def get_code(
    data=Body()
):
    phone = str(data['phone'])
    phone = phone.replace('+', '')

    client = Client(name=f"{phone}",
                    api_id=settings.API_ID,
                    api_hash=settings.API_HASH,
                    workdir=settings.WORKDIR
                    )

    await client.connect()

    try:
        code_data: SentCode = await client.send_code(
            phone_number=phone,
        )

        await save_to_redis(key=f"tg_client_{phone}", value={
            'phone': phone,
            'phone_code_hash': code_data.phone_code_hash
        })

        return {'success': True}
    except Exception as err:
        await client.disconnect()
        raise err

@router.post('/telegram/sign-in')
async def sign_in(
    data=Body()
):
    phone = str(data['phone'])
    phone = phone.replace('+', '')
    phone_code = data['phone_code']

    session_data = await get_from_redis(key=f"tg_client_{phone}")

    if not session_data:
        return {'success': False, 'message': 'Session not found'}

    client = Client(
        name=f"{phone}",
        api_id=settings.API_ID,
        api_hash=settings.API_HASH,
        workdir=settings.WORKDIR
    )

    await client.connect()

    phone_code_hash = session_data['phone_code_hash']

    try:
        await client.sign_in(phone_number=phone,
                             phone_code_hash=phone_code_hash,
                             phone_code=phone_code)

        await client.disconnect()
        await delete_from_redis(key=f"tg_client_{phone}")
        return {'success': True}
    except SessionPasswordNeeded:
        password = data.get('password', None)

        try:
            await client.check_password(password=password)
        except BadRequest:
            await client.disconnect()
            return {'success': False, 'message': 'Incorrect password'}
        else:
            await client.disconnect()
            return {'success': True}

错误:

INFO:     127.0.0.1:41094 - "POST /api/v1/telegram/sign-in HTTP/1.1" 500 Internal Server Error
pyrogram.errors.exceptions.bad_request_400.PhoneCodeExpired: Telegram says: [400 PHONE_CODE_EXPIRED] - The confirmation code has expired (caused by "auth.SignIn")
python
  • 1 个回答
  • 32 Views
Martin Hope
Biteclipse
Asked: 2024-10-02 05:51:32 +0000 UTC

我无法使用 POST 通过 bs4 解析网站

  • 7

我有一个网站,我想以文本形式显示时间表。我似乎能够处理发送请求,但我似乎无法获取时间表本身。告诉我怎样做才是正确的

import requests
from bs4 import BeautifulSoup

group_id = "93"
date_from = "02.10.2024"
date_to = "03.10.2024"

url = 'https://www.tolgas.ru/services/raspisanie/?id=0'
payload = {
    'vr': group_id,  # Идентификатор группы
    'from': date_from,  # Начальная дата
    'to': date_to,  # Конечная дата
    'submit_button': 'Показать'
}

response = requests.post(url, data=payload)
soup = BeautifulSoup(response.text, 'html.parser')

假设我至少想参加这个日期日期

使用此代码

soup.find_all('div', class_="div.timetable-frame__row:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2)")
print(soup.find_all)

但最终我显然得到了一个完整的网站,因为......显示大量文本,不仅是 div 标签,还包括所有其他标签

python
  • 1 个回答
  • 67 Views
Martin Hope
Steven Kirke
Asked: 2024-10-02 04:24:41 +0000 UTC

如何根据日期(第二列)选择第一列和第三列?

  • 6

我无法理解任务的逻辑。当顾客在特定日期购买食物时,会有一张桌子(在示例中有几个)。并且有一个在同一时间段内访问过或未访问过的商店的列表。

第一个条件是显示在一段时间内访问过和未访问该商店的所有人员。第二个条件是显示在一段时间内访问过或未访问过的商店。

我无法连接这些数据。问题是如何连接第 1 列和第 3 列。也就是说,第 3 列应该显示未访问过或访问过的商店,同时链接人员,反之亦然,如果该人没有访问该商店。根据条款,禁止使用运营商。

NOT IN, IN, NOT EXISTS, EXISTS, UNION, EXCEPT, INTERSECT

我是这样实现的,但是不知道如何选择。

有三个表,Buers 与表关联,Visit、Stores 与 Hanging 关联,Visit 是有客户 ID 和商店 ID 的地方。

买家

create table person
( id bigint primary key ,
  name varchar(MAX) not null,
  age integer not null default 10,
  gender varchar(6) default 'female' not null ,
  address varchar(MAX)
  );

alter table person add constraint ch_gender check ( gender in ('female','male') );

insert into person values (1, 'Anna', 16, 'female', 'Moscow');
insert into person values (2, 'Andrey', 21, 'male', 'Moscow');
insert into person values (3, 'Kate', 33, 'female', 'Kazan');
insert into person values (4, 'Denis', 13, 'male', 'Kazan');
insert into person values (5, 'Elvira', 45, 'female', 'Kazan');

商店

create table pizzeria
(id bigint primary key ,
 name varchar(50) not null ,
 rating numeric not null default 0);

alter table pizzeria add constraint ch_rating check ( rating between 0 and 5);

insert into pizzeria values (1,'Pizza Hut', 4.6);
insert into pizzeria values (2,'Dominos', 4.3);
insert into pizzeria values (3,'DoDo Pizza', 3.2);
insert into pizzeria values (4,'Papa Johns', 4.9);
insert into pizzeria values (5,'Best Pizza', 2.3);
insert into pizzeria values (6,'DinoPizza', 4.2);

买家来访

create table person_visits
(id bigint primary key ,
 person_id bigint not null ,
 pizzeria_id bigint not null ,
 visit_date date not null default GETDATE(),
 constraint uk_person_visits unique (person_id, pizzeria_id, visit_date),
 constraint fk_person_visits_person_id foreign key  (person_id) references person(id),
 constraint fk_person_visits_pizzeria_id foreign key  (pizzeria_id) references pizzeria(id)
 );

insert into person_visits values (1, 1, 1, '2022-01-01');
insert into person_visits values (2, 2, 2, '2022-01-01');
insert into person_visits values (3, 2, 1, '2022-01-02');
insert into person_visits values (4, 3, 5, '2022-01-03');
insert into person_visits values (5, 3, 6, '2022-01-04');
insert into person_visits values (6, 4, 5, '2022-01-07');
insert into person_visits values (7, 4, 6, '2022-01-08');
insert into person_visits values (8, 5, 2, '2022-01-08');
insert into person_visits values (9, 5, 6, '2022-01-09');
insert into person_visits values (10, 6, 2, '2022-01-09');
insert into person_visits values (11, 6, 4, '2022-01-01');
insert into person_visits values (12, 7, 1, '2022-01-03');
insert into person_visits values (13, 7, 2, '2022-01-05');

第一个请求,我选择在特定日期访问商店的员工

DECLARE @DataMin DATE = '2022-01-01';
DECLARE @DataMax DATE = '2022-01-03';

CREATE TABLE ##ResultVisitPersons
(namePerson NVARCHAR(100), resultVisit BIT, visitDuringPeriod NVARCHAR(100), pizzeriaName NVARCHAR(100), pizzeriaID INT)

INSERT INTO ##ResultVisitPersons
SELECT
    visit.name,
    visit.resultVisit,
    visit.visitDuringPeriod,
    visit.pizzeriaName,
    visit.pizzeria_id
FROM (
  SELECT 
    person.name,
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN 1
        ELSE 0
    END AS resultVisit,
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN LEFT(CONVERT(VARCHAR, person_visits.visit_date, 104), 10)
        ELSE 'NULL'
    END AS visitDuringPeriod,
    person_visits.pizzeria_id,
    pizzeria.name as pizzeriaName
FROM person_visits
JOIN person ON person.id = person_visits.person_id
JOIN pizzeria ON pizzeria.id = person_visits.pizzeria_id
) visit

第二个请求是同一时间段内商店访问的样本。

CREATE TABLE ##ResultVisitPizzeria
(visitDuringPeriod BIT, result NVARCHAR(100), namePizzeria NVARCHAR(100), id INT)

INSERT INTO ##ResultVisitPizzeria
SELECT 
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN 1
        ELSE 0
    END AS visitDuringPeriod,
        CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN N'Ресторан посещали'
        ELSE N'Ресторан не посещали'
    END AS isVisitDuringPeriod,
    pizzeria.name,
    pizzeria.id
FROM person_visits
JOIN pizzeria ON pizzeria.id = person_visits.pizzeria_id

在此输入图像描述 在此输入图像描述 在此输入图像描述

sql
  • 1 个回答
  • 42 Views
Martin Hope
Ivan
Asked: 2024-10-02 03:22:26 +0000 UTC

垃圾收集器错误,python

  • 6

垃圾收集器正在尝试清理未签入的连接 <AdaptedConnection <Connection(Thread-3, started daemon 19576)>>

该错误与会话有关,这是代码

使用会话

engine = create_async_engine(os.getenv('DB_LITE'), echo=True)

session_maker = async_sessionmaker(bind=engine, class_=AsyncSession, expire_on_commit=False)

async def create_session():
    async with session_maker() as session:
        return session

函数本身

@post_router.message(F.text)
async def post_delete():
    session= await create_session()
    for post in await orm_get_all_post(session):
        date_today = datetime.now()
        date_meet = post.date
        date_meet = datetime(2024, int(date_meet.split('.')[1]), int(date_meet.split('.')[0]))
        if (date_meet-date_today).days==-2:
            await orm_delete_post(session, post.product_name)

她的挑战

async def main():
    dp.startup.register(on_startup)
    dp.shutdown.register(on_shutdown)

    scheduler=AsyncIOScheduler(timezone='Europe/Moscow')
    scheduler.add_job(post_delete, trigger='interval', seconds=5)
    scheduler.start()

    dp.update.middleware(DataBaseSession(session_pool=session_maker))

    await bot.delete_webhook(drop_pending_updates=True)
    await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types())

asyncio.run(main())

问题是它是一个后台函数:如果你使用 kwargs,它就会变成一个类。如果有人知道请帮忙!

python
  • 1 个回答
  • 40 Views
上一页
下一页

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5