有这样的行:
12 PARFUMEURS LE BIEN AIME 100ml edp test
A.Banderas BLUE SED. ELECTRIC women 100ml test
A.Dunhill BLACK men 100ml edt
如何仅提取名称,并删除该卷及其后的下一个?
有这样的行:
12 PARFUMEURS LE BIEN AIME 100ml edp test
A.Banderas BLUE SED. ELECTRIC women 100ml test
A.Dunhill BLACK men 100ml edt
如何仅提取名称,并删除该卷及其后的下一个?
返回一个字符串
(1, 'Москва златоглавая', Decimal('280.0000'), 'Ожидание')
如何将其转换为例如:
Москва златоглавая 280руб Ожидание
有一个机器人:在启动时,会出现一系列按钮。用户单击其中一个,从数据库中获得选择。从数据库获取数据后,如何选择按钮再次出现。没有重启。如果它不让它变得困难,一个例子。谢谢你。
@dp.message_handler(commands=['start'])
async def process_command(message: types.Message):
await message.reply("Нажмите одну из кнопок", reply_markup=kb.inline_kb_full)
@dp.callback_query_handler(lambda c: c.data == 'button1')
async def process_callback_button1(callback_query: types.CallbackQuery):
button_push = callback_query
await bot.answer_callback_query(callback_query.id, config.switch_button.get(button_push))
print(button_push.data)
push = button_push.data
button_request = config.switch_button.get(push)
print(button_request)
con = pymysql.connect(host='', user='', password='', database='')
with con:
cur = con.cursor()
cur.execute(button_request)
rows = cur.fetchone()
print(rows)
await bot.send_message(callback_query.from_user.id, rows)
有这样的设计:
@dp.callback_query_handler(lambda c: c.data == 'button1')
async def process_callback_button(callback_query: types.CallbackQuery):
button_push = callback_query
await bot.answer_callback_query(callback_query.id, config.switch_button.get(button_push))
print(button_push.data)
push = button_push.data
button_request = config.switch_button.get(push)
print(button_request)
con = pymysql.connect(host='', user='', password='', database='testop')
with con:
cur = con.cursor()
cur.execute(button_request)
rows = cur.fetchone()
print(rows)
await bot.send_message(callback_query.from_user.id, rows)
除了装饰器,异步函数是迭代的!我把它放到一个单独的 funcp 文件中并进行调用,现在写入了无效的语法。如何用这个装饰器调用函数?我喜欢这样:
@dp.callback_query_handler(lambda c: c.data == 'button1')
async funcp.process_callback_button()
有一个机器人。用户按下按钮,机器人向数据库发出请求并获取必要的信息。还有一个 GIF(示例)。
如何使它在用户等待响应时显示 GIF?如果不难,请在实践中展示代码。
这是我的代码:
@dp.callback_query_handler(lambda c: c.data == 'button1')
async def process_callback_button1(callback_query: types.CallbackQuery):
button_push = callback_query
await bot.answer_callback_query(callback_query.id, config.switch_button.get(button_push))
print(button_push.data)
push = button_push.data
button_request = config.switch_button.get(push)
print(button_request)
con = pymysql.connect(host='', user='', password='', database='testop')
with con:
cur = con.cursor()
cur.execute(button_request)
rows = cur.fetchone()
print(rows)
await bot.send_message(callback_query.from_user.id, rows)
SQL 查询在一个变量中,该变量附加到按钮上。客户端按下按钮,请求(变量飞到数据库)并返回一个选择,显示给客户端。问题:点击后如何让请求飞走?并删除请求中的机器人名称这是按钮代码:
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def process_command(message: types.Message):
await message.reply("Нажмите одну из кнопок", reply_markup=kb.inline_kb_full)
inline_kb_full = InlineKeyboardMarkup(row_width=2).add(inline_btn_1)
inline_kb_full.add(InlineKeyboardButton('Вторая кнопка', callback_data='btn2'))
inline_btn_3 = InlineKeyboardButton('кнопка 3', callback_data='btn3')
inline_btn_4 = InlineKeyboardButton('кнопка 4', callback_data='btn4')
inline_btn_5 = InlineKeyboardButton('кнопка 5', callback_data='btn5')
inline_kb_full.add(inline_btn_3, inline_btn_4, inline_btn_5)
inline_kb_full.row(inline_btn_3, inline_btn_4, inline_btn_5)
inline_kb_full.insert(InlineKeyboardButton("query=''", switch_inline_query=''))
inline_kb_full.insert(InlineKeyboardButton("query='qwerty'", switch_inline_query='qwerty'))
inline_kb_full.insert(InlineKeyboardButton("Inline в этом же чате", switch_inline_query_current_chat='wasd'))
inline_kb_full.add(InlineKeyboardButton('Связаться с оператором', url=config.url))
机器人的想法:用户输入一个日期,机器人在那天放假。一个单独的文件包含一个字典,其中日期是键,假期描述是值。问题是机器人没有从文件中读取数据。它交替显示这两条硬编码消息。如何解决?
def func(message):
if message.text == "":
bot.send_message(message.from_user.id, slovar.data_year.get(""))
else:
bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
data = bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
bot.register_next_step_handler(data, func)
bot.polling(none_stop=True, interval=0)
想法:你输入一个日期,机器人会显示那天的假期。打开机器人时,应显示以下文本:
以 D.MM 格式输入日期并按 ENTER
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
data = input()
if message.text == data:
bot.send_message(message.from_user.id, slovar.data_year.get(data))
else:
bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")
bot.polling(none_stop=True, interval=0)
import telebot
import slovar
bot = telebot.TeleBot('1770077388:AAHQa8lA-Qh1VX9X1xUJm1KRoaxwFk7uia0')
data = input()
def func(message):
if message.text == data:
bot.send_message(message.from_user.id, slovar.data_year.get(data))
else:
bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
data = bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
bot.register_next_step_handler(data, func)
bot.polling(none_stop=True, interval=0)
任务:我们发送一个电话号码和短信,我们收到一条带有令牌的消息。我们收到一条错误消息 Wrong request struct
要求:
tok_en = requests.post(url_send_token, json={"phone": number_phone, "code": cod})
token = tok_en.text
print(token)
这是消息:
{"meta":{"message":"错误的请求结构","type":"error","error":400,"date":"2021-03-2"},"data":{"date ":""}}
怎么了?
解释什么是错的。路径是正确的:
from selenium import webdriver
link = "https://www.google.ru/"
driver = webdriver.Chrome(executable_path='/Users/Desktop/driver/chromdriver')
driver.get(link)
这是日志:
selenium.common.exceptions.WebDriverException: Message: 'chromdriver' executable needs to be in PATH.
在 mac 上运行 selenium
import pyodbc
并引发此错误:
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyodbc.cpython-38-darwin.so, 2): Library not loaded: /usr/local/opt/unixodbc/lib/libodbc.2.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyodbc.cpython-38-darwin.so
Reason: image not found
但是通过pip List
很明显这个模块已经安装了。有人面对?
有字典,但字典里有字典。如何从“数据”中提取所有键并将它们放入单独的字典中
questionnaire = {
"appType":"value",
"step":"FULL",
"data":{
"amount":50000,
"period":36,
"loanPurpose":"ConstructionHouseroom",
}
}
Get-request 我收到给定数量的消息。每条消息都有一个 content_id_out 键和它的值。我得到下面的代码。但我从一个。问题:如何从ALL消息中获取这个key的值,放入字典中?
dii = json.loads(news)
act = dii['items'][0]['content_id_out']
txt 包含逐行“响应 [200]”的条目,然后是文件的链接。assert 代表除“Response[200]”以外的任何内容。在这里它不起作用。为什么?
# -*- coding: utf-8 -*-
f = open('files.txt', 'r', encoding='utf-8')
for line in f.readlines():
print (line)
resp = '<Response [200]>'
assert resp, 'file not found'
f.close()
pyautogui 模块的文档说 pyautogui.scroll(10) 但它不起作用。有人能遇到吗?
下面是代码,它跟随链接并截取屏幕可见部分的屏幕截图。在打印显示我的大小。如何让它截取整个页面,或者至少不附在屏幕上,你可以指定你自己的:
import webbrowser
import pyautogui
url = 'website'
webbrowser.open(url, new=2, autoraise=True)
screen = pyautogui.screenshot('scrin.png')
print(screen)
下面是代码。逐个链接解析站点页面,收集其上的所有链接并写入文件。如何使解析器随后跟踪每个链接并解析该页面上的所有链接并添加到文件中。最终目标是从整个站点收集链接。如果可能的话,举个例子。这是代码
def get_books() -> typing.List[str]:
rs = requests.get('https://......')
root = BeautifulSoup(rs.text, 'html.parser')
t = []
for x in root.findAll('a'):
try:
t1 = x["href"].strip()
if not 'http' in t1:
t1 = 'https://....' + t1
t.append(t1)
except KeyError:
pass
return t
if __name__ == '__main__':
books = get_books()
f = io.open('parsed_data.htm', 'w', encoding='utf8')
for line in books:
f.write(line + "\n")
f.close()
tf = io.open('text_new.txt', 'w', encoding='utf8')
with open('parsed_data.htm', 'r') as f:
file = f.readlines()
seen_item = []
for line in file:
if line not in seen_item:
seen_item.append(line)
tf.write(line)
tf.close()
В результате Post-запроса получаю вот такой ответ: "authToken":"oo8pwbHZGh7YQu-AwcZ4ESg2rozyzBeNA5suNDEfgGZIPmtxtZY9Hk8aeefEpSAmW8vp0jwPfTYyZtH__-1B5w==","expireAt":"2019-22-05 05:44:19"} Сам токен вот: oo8pwbHZGh7YQu-AwcZ4ESg2rozyzBeNA5suNDEfgGZIPmtxtZY9Hk8aeefEpSAmW8vp0jwPfTYyZtH__-1B5w == 如何让他离开那里?
我正在发送一个 GET 请求。我以键值的形式得到答案。这是一个测试,如果其中一个值为空,则需要失败。告诉我怎么做?
r = requests.get(url + 'api/v1/currency/RUB/USD/CASH/')
reqs = r.content.decode('utf-8')
print(r.status_code)
print(reqs)
dict = json.loads(reqs)
print(dict)
print(dict["data"]["rate_kind"])
print(dict["data"]["curr_buy"])