首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >该字符串在Python中不可调用。

该字符串在Python中不可调用。
EN

Stack Overflow用户
提问于 2020-12-22 11:45:34
回答 1查看 66关注 0票数 0

我正试着向csv输出一个dict。我是从一个api中提取数据,并需要它打印到一个CSV。

我正在使用:

代码语言:javascript
复制
import datetime
import csv
import pendulum
import requests
from tabulate import tabulate
import pandas as pd
import numpy as np

我调用的API如下:

代码语言:javascript
复制
api_url = "https://secure-webtv-static.canal-plus.com/metadata/cpfra/all/v2.2/globalchannels.json"
response = requests.get(api_url).json()

我想要得到的数据在这里:

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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文件。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-22 11:51:45

您需要传递实际的数据结构,而不是tabulate构建的字符串。

例如:

代码语言:javascript
复制
df = pd.DataFrame(tv_programme["CANAL+"], columns=["Title", "Subtitle", "Time", "Duration"])
df.to_csv("canal_plus.csv", index=False)

这给了你:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65408134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档