来自 configparser 的列表作为参数传递给 telethon 错误
List from configparser passing as argument to telethon errors
我遇到了一个小问题,使我陷入了从电报聊天中收集数据的代码小脚本。首先,我将展示我的代码和配置文件:
Config.ini:
[account]
api_id = xxxx
api_hash = xxxx
[parser]
channels_to_parse = [-xxxx,-xxxx]
Run.py
import configparser
import asyncio
import time
from telethon import events
from telethon import TelegramClient
from telethon.tl import functions, types
from datetime import datetime
#load config file
config = configparser.ConfigParser()
config.read('config.ini', encoding="utf-8")
#telethon init
client = TelegramClient('sess', config.get("account", 'api_id'), config.get("account", 'api_hash'))
client.start()
#main cycle
@client.on(events.NewMessage(chats=config.get('parser' , 'channels_to_parse')))
async def main(event):
#some code...
client.run_until_disconnected()
主要问题来自包含 telethon 参数的字符串,该字符串指向我从中收集数据的聊天 ID:
ValueError: Cannot find any entity corresponding to "[-xxxx]"
当我手动传递参数时,没有 configparser:
@client.on(events.NewMessage(chats = [-xxxx, -xxxx]))
一切正常。所以我认为这个问题与 configparser 或 configparser 参数有关。我检查了 configparser 文档,但没有找到任何可以帮助我的东西。
我已经尝试使用频道名称而不是 ID。也许谁能解释我做错了什么。
我目前无法检查,但我知道 configparser returns 是 str 类型,您需要一个列表。但我可能是错的(
更新
我查了一下,没错!
config.ini:
[parser]
channels_to_parse = -xxxx -xxxx
file.py:
parser = config.get('parser', 'channels_to_parse') # type str
chats = [int(i) for i in parser.split()] # type list
@client.on(events.NewMessage(chats=chats))
我遇到了一个小问题,使我陷入了从电报聊天中收集数据的代码小脚本。首先,我将展示我的代码和配置文件:
Config.ini:
[account]
api_id = xxxx
api_hash = xxxx
[parser]
channels_to_parse = [-xxxx,-xxxx]
Run.py
import configparser
import asyncio
import time
from telethon import events
from telethon import TelegramClient
from telethon.tl import functions, types
from datetime import datetime
#load config file
config = configparser.ConfigParser()
config.read('config.ini', encoding="utf-8")
#telethon init
client = TelegramClient('sess', config.get("account", 'api_id'), config.get("account", 'api_hash'))
client.start()
#main cycle
@client.on(events.NewMessage(chats=config.get('parser' , 'channels_to_parse')))
async def main(event):
#some code...
client.run_until_disconnected()
主要问题来自包含 telethon 参数的字符串,该字符串指向我从中收集数据的聊天 ID:
ValueError: Cannot find any entity corresponding to "[-xxxx]"
当我手动传递参数时,没有 configparser:
@client.on(events.NewMessage(chats = [-xxxx, -xxxx]))
一切正常。所以我认为这个问题与 configparser 或 configparser 参数有关。我检查了 configparser 文档,但没有找到任何可以帮助我的东西。
我已经尝试使用频道名称而不是 ID。也许谁能解释我做错了什么。
我目前无法检查,但我知道 configparser returns 是 str 类型,您需要一个列表。但我可能是错的(
更新
我查了一下,没错!
config.ini:
[parser]
channels_to_parse = -xxxx -xxxx
file.py:
parser = config.get('parser', 'channels_to_parse') # type str
chats = [int(i) for i in parser.split()] # type list
@client.on(events.NewMessage(chats=chats))