Задать вопрос
@DZENDER

Expecting value: line 1 column 1 (char 0) в чем ошибка?

Прошу помочь новичку с кодом.

Это бот для автоматической продажи аккаунтов в вк, при нажатии кнопки "Проверить оплату" выдает данную ошибку: Expecting value: line 1 column 1 (char 0)

Код прилагаю ниже,буду очень благодарен любой помощи!

#! /usr/bin/env python
# encoding: utf-8
import sys
sys.path.insert(0, '../')
import sqlite3

from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
import vk_api
import random
import re
import requests
import json

conn = sqlite3.connect('my.sqlite')
c = conn.cursor()
#c.execute('CREATE TABLE opl (idvk int, sum varchar, tovar varchar)')

token ='e4a017b7b3bdannieizmeneni'
vk_session = vk_api.VkApi(token=token)

session_api = vk_session.get_api()

longpoll = VkLongPoll(vk_session)


def create_keyboard(response):
 keyboard = VkKeyboard(one_time=False)

# if response == 'тест':
#
 #keyboard.add_button('Белая кнопка', color=VkKeyboardColor.DEFAULT)
 # keyboard.add_button('Зелёная кнопка', color=VkKeyboardColor.POSITIVE)
#
 # keyboard.add_line() # Переход на вторую строку
 # keyboard.add_button('Красная кнопка', color=VkKeyboardColor.NEGATIVE)
#
 # keyboard.add_line()
 # keyboard.add_button('Синяя кнопка', color=VkKeyboardColor.PRIMARY)
 # keyboard.add_button('Привет', color=VkKeyboardColor.PRIMARY)

 if response == u"войти на торговую площадку" or response == u'назад' or response == u'начать':
     keyboard.add_button(u'Купить аккаунт',color=VkKeyboardColor.POSITIVE)
     #keyboard.add_button(u'Накрутить алмазы',color=VkKeyboardColor.NEGATIVE)
 elif response == u'купить аккаунт' or response == u'накрутить алмазы':
     keyboard.add_button('Назад')
 else:
     keyboard.add_button('Проверить оплату', color=VkKeyboardColor.NEGATIVE)
     keyboard.add_line()
     keyboard.add_button('Назад')










# print('закрываем клаву')
 # return keyboard.get_empty_keyboard()
#
 keyboard = keyboard.get_keyboard()
 return keyboard


def send_message(vk_session, id_type, id, message=None, attachment=None, keyboard=None):
 vk_session.method('messages.send',{id_type: id, 'message': message, 'random_id': random.randint(-2147483648, +2147483648), "attachment": attachment, 'keyboard': keyboard})

while True:
    try:
        for event in longpoll.listen():
             if event.type == VkEventType.MESSAGE_NEW:
                 #print('Текст сообщения: ' + str(event.text))
                 #print(str(event.user_id))
                 #print(event.user_id)
                 chup = '289502520'
                 response = event.text.lower()
                 keyboard = create_keyboard(response)
                 #Главное меню

                 if event.from_user and not event.from_me:
                     if response == u"начать":
                         send_message(vk_session, 'user_id', event.user_id, message="Поздравляем. Вы зашли на торговую площадку!", keyboard=keyboard)
                     elif response == u"купить аккаунт":
                         text = ''
                         textvrem = ''
                         attachment = ''
                         f = open('cfg.txt','r')
                         pro = ''
                         a = re.split('\n',f.read())
                         for line in a:
                             pro1 = re.split(':',line)
                             pro = """
==============
%s
==============
Id Товара : %s

Описание : %s

Стоимость : %s
========================"""%(str(pro1[1]),str(pro1[0]),str(pro1[3]),str(pro1[2]))
                             text += '\n'+ pro
                             attachment += pro1[4] + ','
                         text += '\n Чтобы купить аккаунт - введите id товара. \n Скрины всех аккаунтов : https://vk.com/album-188141537_268487430 '
                         print(attachment)
                         send_message(vk_session, 'user_id', event.user_id, message=text, keyboard=keyboard,attachment = attachment)
                     elif response == u'назад':
                         send_message(vk_session, 'user_id', event.user_id, message="Следуй пунктам меню", keyboard=keyboard)

                     #Тут сообщения с главного меню.
                     #НАКРУТИТЬ АЛМАЗЫ
                     elif response == u"накрутить алмазы":
                         send_message(vk_session, 'user_id', event.user_id, message= """
                         Сумма накрутки.
                         1.250 алмазов-50р.
                         2.500 алмазов-100р.
                         3.700 алмазов-160р.
                         Выбирете цифру пункта(например.1 и т.д)""", keyboard = keyboard) #Знак \n обозначает новую строку
                     elif response != u'проверить оплату':
                         text = ''
                         textvrem = ''
                         f = open('cfg.txt','r')
                         pro = ''
                         a = re.split('\n',f.read())
                         for line in a:
                             pro1 = re.split(':',line)
                             if response == pro1[0]:
                                 c.execute("SELECT * FROM opl WHERE idvk  = ('%s') and tovar = ('%s')"%(event.user_id,pro1[0]))
                                 row = c.fetchone()
                                 if row == None:
                                     c.execute("INSERT INTO opl (idvk, sum, tovar) VALUES ('%s','%s','%s')"%(str(event.user_id),pro1[2],pro1[0]))
                                     conn.commit()
                                     com = str(event.user_id) + ':' + pro1[0]
                                     message1 = "Чтобы купить товар %s :\n1. Перейдите по ссылке : https://vk.cc/adHRec\n2. В графе 'Комментарий к перевод' введите вот этот комментарий :   %s\n3. В графе 'Сумма' введите : %s\n 4. В графе 'номер получателя' введите :  +79dannieizmeneni"%(pro1[1],com,pro1[2])
                                     send_message(vk_session, 'user_id', event.user_id, message=message1, keyboard=keyboard)
                                 else:
                                     com = str(event.user_id) + ':' + pro1[0]
                                     message1 = "Чтобы купить товар %s :\n1. Перейдите по ссылке : https://vk.cc/adHRec\n2. В графе 'Комментарий к перевод' введите вот этот комментарий :   %s\n3. В графе 'Сумма' введите : %s\n4. В графе 'номер получателя' введите : +79dannieizmeneni9"%(pro1[1],com,pro1[2])
                                     send_message(vk_session, 'user_id', event.user_id, message=message1, keyboard=keyboard)
                     elif response == u'проверить оплату':
                         api_access_token = u'd5b90ff3a5dannieizmeneni' # токен можно получить здесь https://qiwi.com/api
                         my_login = u'+7dannieizmeneni' # номер QIWI Кошелька в формате +79991112233
                         s = requests.Session()
                         s.headers[u'authorization'] = u'Bearer ' + api_access_token
                         parameters = {'rows': '28'}
                         h = s.get(u'https://edge.qiwi.com/payment-history/v1/persons/'+my_login+'/payments', params = parameters)
                         req = json.loads(h.text)
                         for i in range(len(req[u'data'])):
                             idopl1 = req[u'data'][i][u'comment']
                             if True:
                                 try:
                                     idopl = re.split(':',idopl1)
                                     if idopl[0] == str(event.user_id):
                                         tovar = idopl[1]
                                         c.execute("SELECT * FROM opl WHERE idvk  = ('%s') and tovar = ('%s')"%(event.user_id,idopl[1]))
                                         row = c.fetchone()
                                         if row == None:
                                             send_message(vk_session, 'user_id', event.user_id, message="Ваш платёж был найден, но код указан не полностью, обратитесь в тех.поддержку,мы выдадим Вам ваш товар.", keyboard=keyboard)
                                         else:
                                             text = ''
                                             textvrem= ''
                                             attachment = ''
                                             f = open('cfg.txt','r')
                                             pro = ''
                                             a = re.split('\n',f.read())
                                             for line in a:
                                                 pro1 = re.split(':',line)
                                                 opl = int(pro1[2]) - 1
                                                 if pro1[0] == str(tovar) and int(req['data'][i]['sum']['amount']) > opl:
                                                     messagevrem = """Спасибо за покупку в нашем магазине !\nДанные от Вашего аккаунта:\n--------------------\nЛогин : %s\nПароль : %s\n--------------------\nЖдём Вас еще :) !\n """%(pro1[5],pro1[6])
                                                     asvav = send_message(vk_session, 'user_id', event.user_id, message=messagevrem, keyboard=None)
                                                     idpok = str(event.user_id)
                                                     event.user_id = 169021086
                                                     vdasvsa = send_message(vk_session, 'user_id', event.user_id, message=u'Товар под номером ' + tovar + u' был продан! Удали его из кфг! Его ссылОЧКА  https://vk.com/id' + idpok, keyboard=None)
                                 except Exception as err:
                                     print(err)
    except Exception as qqq:
        print(qqq)
  • Вопрос задан
  • 1060 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@anerev
1. Нужен весь traceback, но как я понял это что-то связанное с json.
2. Неактуальное использование vk_api, есть множество способов улучшить бота, вот почитай из официального github примеры https://github.com/python273/vk_api/blob/master/ex...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы