Строка не вызывается в Python

Я пытаюсь экспортировать dict в csv. Я извлекаю данные из API и мне нужно их распечатать в CSV.

Я использую:

import datetime
import csv
import pendulum
import requests
from tabulate import tabulate
import pandas as pd
import numpy as np

API, который я вызываю, приведен ниже:

api_url = "https://secure-webtv-static.canal-plus.com/metadata/cpfra/all/v2.2/globalchannels.json"
response = requests.get(api_url).json()

Получение данных, которые я хотел бы получить, находится здесь:

tv_programme = {
    channel["name"]: [
        [
            e['title'],
            e['subTitle'],
            pendulum.parse(e['timecodes'][0]['start']
                           ).time().strftime("%H:%M"),
            datetime.timedelta(
                milliseconds=e['timecodes'][0]['duration'],
            ).__str__().rsplit(".")[0],
        ] for e in channel["events"]
    ] for channel in response["channels"]
}

Я пытаюсь использовать Pandas для отправки данных в файл CSV

df = pd.DataFrame(tabulate(
    tv_programme["CANAL+ SPORT"],
    headers = "firstrow"("Title", "Subtitle", "Time", "Duration"),
    tablefmt = "csv",
))
print(tabulate(
    tv_programme["CANAL+ SPORT"],
    headers=["Title", "Subtitle", "Time", "Duration"],
    tablefmt = "csv",
))
df = pd.DataFrame(sorted(list(tv_programme.headers('sports.csv'))))

print собирает приведенные ниже данные, и мне это нужно для заполнения файла CSV.

Title                                Subtitle     Time    Duration
-----------------------------------  -----------  ------  ----------
Sport Reporter                       Doc Sport    10:42   0:26:23
Chelsea / West Ham                   14e journée  11:11   0:48:38
Cesta punta - Pro Tour 2020          Autre Sport  12:51   1:28:53
Rugby - Golden Lions / Natal Sharks  4e journée   14:20   0:45:56
Rugby - Colomiers / Perpignan        8e journée   15:55   0:50:00
Rugby - Oyonnax / Biarritz           6e journée   17:55   0:50:00
Rugby - Castres / Brive              4e journée   19:55   1:15:00

Теперь вот где я застреваю и получаю сообщение об ошибке: TypeError: 'str' object is not callable

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно передать фактическую структуру данных, а не строку, созданную tabulate.

Например:

df = pd.DataFrame(tv_programme["CANAL+"], columns=["Title", "Subtitle", "Time", "Duration"])
df.to_csv("canal_plus.csv", index=False)

Это дает вам:

Другие вопросы по теме