TypeError: объект dict не является вызываемым (внутри функции Thread)

Я получаю ошибку в программе, которая использует threading для выполнения функций одновременно, этот процесс является заданием, которое выполняется один раз в час, Данные, которые поступают, получены из представления в sql.

Функция, вызываемая в цели arg, возвращает словарь и сообщает. "dict object is not callable". Внутри функции возвращается словарь. Я сомневаюсь, что должно быть возвращено в этой функции, если я ничего не верну, повлияет ли это на любой другой поток?

# inside the jobs in django I call this function
def ticket_booking():  
  
    query = " SELECT * FROM vw_ticket_list;"  

    ttd = []
    try:
        result = query_to_dicts(query)
        tickets = json.loads(to_json(result))
        if tickets:

            # Calling the vaccination push message (php).
            for ticket in tickets:
            
                # Getting Generic details used by all categories
                full_name = tickets['full_name'] 
                gender = tickets['gender']  
                email =tickets[email]

                if tickets['language_id'] == 1:  # book english movie tickets 
                   
                    # Calling the function inside the Thread for a Syncronuz Call (Wait and Watch)
                    myThread = threading.Thread(target=book_english(email, full_name))
                    myThread.start()  
                    myThread.join()  

                if tickets['language_id']  == 2:  # book italian movie tickets 
                    myThread = threading.Thread(target=book_italian( email, full_name, gender))
                    myThread.start()  # Starting the Thread
                    myThread.join() #Will return here if sth is returned

Как вы можете видеть в комментариях кода, если функция book italian возвращает что-л., только тогда она может вернуться сюда, и у меня есть 5 потоков в общей сложности, чтобы вырезать одновременно, функция book italian выглядит так:

def book_italian(email,fullname,gender):
try
    # posts data to another server #
    b=requests.post(some postdata)

     a =log.objects.create(log data from b in crct format)
     return a--->{"Message":"Log created successfully"}

a является типом class dict и я пытался изменить его на многие типы, все равно выдает ту же ошибку, это задание не выполняется при запуске в crontab.

Когда вы используете threading.Thread для выполнения чего-либо, вы должны разделить target вызываемый объект (например, функцию) и соответствующие arguments (параметры), а затем передать их соответственно:

myThread = threading.Thread(target=book_italian, args=(email, full_name, gender))

Ссылка на документ.

Вернуться на верх