Помощь в разборе ошибки python
Есть небольшой код с использованием стороннего api(кому интересно - pip install pyopendota). Суть api в получении той или иной информации о игроках/матчах дота2. При попытке реализации кода, питон выдает ошибку, которую я, в виду своей неопытности понять никак не могу.
Вот ошибка:
- Traceback (most recent call last): File "H:\pythonProject1\proverkasinputom.py", line 15, in y = str(client.get_player(x))
- File "H:\Pythonn\lib\site-packages\opendota\opendota.py", line 425, in get_player return self.get(url, filename=filename, force=force)
- File "H:\Pythonn\lib\site-packages\opendota\opendota.py", line 227, in get return self.request(*args, **kwargs)
- File "H:\Pythonn\lib\site-packages\opendota\opendota.py", line 216, in request with open(path, "w") as f: OSError: [Errno 22] Invalid argument: 'C:\Users\Shaurma\dota2\player_480484126\n.json'
Вот код, который приводит к данной ошибке:
while True:
if count == 1:
print('done')
break
file1 = open('test.txt', 'r', encoding='utf-8')
x = file1.readline()
file1.close()
y = client.get_player(x)
print(y)
count += 1
При этом, если я прописываю вручную id в client.get_player, все прекрасно работает.
Пример рабочего кода, но без подстановки нужного id через переменную:
count = 0
while True:
if count == 1:
print('done')
break
y = client.get_player('480484126')
print(y)
count += 1
Хотелось бы понять: это какое-то ограничение api на ввод id через переменную,или что-то иное? Есть ли возможное решение данного вопроса?
Ответы (1 шт):
File "H:\Pythonn\lib\site-packages\opendota\opendota.py",
line 216, in request with open(path, "w") as f:
OSError: [Errno 22] Invalid argument:
'C:\\Users\\Shaurma\\dota2\\player_480484126\n.json'
^^
Судя по ошибке, у вас передаётся в вызов api лишний перевод строки после номера игрока. Попробуйте его убрать:
x = file1.readline().strip()
^^^^^^^^