首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Python创建报表

如何使用Python创建报表
EN

Stack Overflow用户
提问于 2022-11-25 03:16:40
回答 1查看 32关注 0票数 1

我试图用Python在dailymotion上创建报告,但是我有错误,根据我收到的错误,renponse是空的。我还是不明白。我想,我的用户不能登录到dailymotion。请检查错误。

{“数据”:{“askPartnerReportFile”:无},“错误”:[{“消息”:“未授权访问askPartnerReportFile字段”。),“路径”:“askPartnerReportFile”,“位置”:{'line':3,'column':9},**'type':‘not_authorized**’}}回溯(最近一次调用):

文件"get_reports.py",第143行,在product='CONTENT‘中,

文件"get_reports.py",第65行,在create_report_request中返回response.json()'data''reportFile';

TypeError:“NoneType”对象不可订阅

这是我的密码;

`

代码语言:javascript
运行
AI代码解释
复制
    def get_access_token(app_key, app_secret, username, password):
        '''
        Authenticate on the API in order to get an access token
        '''
        response = requests.post('https://graphql.api.dailymotion.com/oauth/token', data={
            'client_id': app_key,
            'client_secret': app_secret,
            'username': username,
            'password': password,
            'grant_type': 'password',
            'version': '2'
        })
    
        if response.status_code != 200 or not 'access_token' in response.json():
            raise Exception('Invalid authentication response')
    
        return response.json()['access_token']
    
    def create_report_request(access_token, dimensions, metrics, start_date, end_date, product, filters = None):
        '''
        Creating a report request
        '''
        reportRequest = """
        mutation ($input: AskPartnerReportFileInput!) {
            askPartnerReportFile(input: $input) {
                reportFile {
                    reportToken
                }
            }
        }
        """
        response = requests.post(
            'https://graphql.api.dailymotion.com',
            json={
                'query': reportRequest,
                'variables': {
                    'input': {
                        'metrics': metrics,
                        'dimensions': dimensions,
                        'filters': filters,
                        'startDate': start_date,
                        'endDate': end_date,
                        'product': product,
                    }
                }
            },
            headers={'Authorization': 'Bearer ' + access_token}
        )
        print(response.status_code)
        if response.status_code != 200 or not 'data' in response.json():
            raise Exception('Invalid response')
        print(response.json())
        return response.json()['data']['askPartnerReportFile']['reportFile']['reportToken'];
    
    def check_report_status(access_token, report_token):
        '''
        Checking the status of the reporting request
        '''
        report_request_status_check = """
        query PartnerGetReportFile ($reportToken: String!) {
            partner {
                reportFile(reportToken: $reportToken) {
                    status
                    downloadLinks {
                        edges {
                            node {
                                link
                            }
                        }
                    }
                }
            }
        }
        """
        response = requests.post(
            'https://graphql.api.dailymotion.com',
            json={
                'query': report_request_status_check,
                'variables': {
                    'reportToken': report_token
                }
            },
            headers={'Authorization': 'Bearer ' + access_token}
        )
    
        if response.status_code != 200 or not 'data' in response.json():
            raise Exception('Invalid response')
    
        status = response.json()['data']['partner']['reportFile']['status'];
    
        if (status == 'FINISHED'):
            download_links = []
            for url in map(lambda edge: edge['node']['link'], response.json()['data']['partner']['reportFile']['downloadLinks']['edges']):
                download_links.append(url)
            return download_links
        else:
            return None
    
    def download_report(download_links, base_path=None):
        '''
        Downloading the report files
        '''
        cpt = 1
        if not base_path:
            base_path = os.getcwd()
    
        for url in download_links:
            r = requests.get(url)
            filename = 'report_{}.csv'.format(cpt)
            file_path = os.path.join(base_path, filename)
            open(file_path, 'wb').write(r.content)
            print('Report file {} downloaded: {}'.format(cpt, file_path))
            cpt += 1
    
    print('Generating access token...')
    access_token = get_access_token(
        app_key='******',
        app_secret='*******',
        username='*****',
        password='*****'
    )
    
    print('Creating report request...')
    report_token = create_report_request(
        access_token=access_token,
        dimensions=('DAY', 'VIDEO_TITLE'),
        metrics=('VIEWS'),
        filters={'videoOwnerChannelSlug': 'B******'},
        start_date='2022-11-23',
        end_date='2022-11-24',
        product='CONTENT',
    )
    
    download_links = None
    while not download_links:
        print('Checking report status...')
        # Checks every 15secs the report status
        time.sleep(15)
        download_links = check_report_status(
            access_token=access_token,
            report_token=report_token
        )
    
    download_report(download_links=download_links)

`

我试图获取数据dailymotion。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 02:43:06

这个特性需要一个特定的API访问,而API键上缺少它,这就是为什么您得到消息Not authorized to access askPartnerReportFile field.的原因。

由于这是一个仅限于verified-partners的特性,您应该联系内容管理器询问他这种访问方式,或者您可以尝试使用联系我们的支持

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

https://stackoverflow.com/questions/74571992

复制
相关文章
SQVI-如何自行创建报表?
在项目实施过程中,SAP标准报表提供的功能不能满足一些特殊的需求,因而会有一些临时的报表需求,若开发人员临时写一个报表,需要开发测试过程,时间较长,此时,实施工程师可以使用SAP提供的SQVI功能,快速自定义一个自己需要的报表。
用户5495712
2019/11/07
1.1K0
SQVI-如何自行创建报表?
如何使用Python创建NetCDF文件
之前介绍过如何使用Python处理NetCDF格式文件,这次介绍一下如何创建NetCDF文件。
MeteoAI
2019/07/24
14.8K1
如何使用 conda 创建 python 虚拟环境
conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理和环境管理。包管理与pip的使用方法类似,环境管理则是允许用户方便滴安装不同版本的python环境并在不同环境之间快速地切换。
BUG弄潮儿
2023/09/02
15.4K0
如何使用 conda 创建 python 虚拟环境
如何设计报表?
报表就是报告状况的表,是通过表格、图表来展示指标,从而方便业务部门掌握业务的情况。
猴子数据分析
2020/11/18
8980
python制作报表
随着报表不断的变化,我们决定采用python进行开发。使用的库主要是mako.render
jiewuyou
2022/09/29
1.6K0
使用python来实现报表自动化
安装xlwt :在终端中输入pip install xlwt或者easy_install xlwt
数据森麟
2019/11/14
1.7K0
使用python生成oracle数据报表
#!/usr/bin/env python #coding:utf-8 # cx_Oracle 用于访问oracle和导出数据 import cx_Oracle # xlsxwriter 用于生成xlsx文件 import xlsxwriter import time import sys # 导入邮件模块 from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib  
py3study
2020/01/10
1K0
使用Python自动生成报表以邮件发送
数据分析师肯定每天都被各种各样的数据数据报表搞得焦头烂额,老板的,运营的、产品的等等。而且大部分报表都是重复性的工作,这篇文章就是帮助大家如何用Python来实现报表的自动发送,解放你的劳动力,可以让你有时间去做更有意思的事情。
Python中文社区
2018/09/21
2.7K0
使用Python自动生成报表以邮件发送
如何设计报表?
报表就是报告状况的表,是通过表格、图表来展示指标,从而方便业务部门掌握业务的情况。
猴子数据分析
2021/05/16
8400
如何使用Python创建美观而有见地的图表
在今天的文章中,将研究使用Python绘制数据的三种不同方式。将通过利用《 2019年世界幸福报告》中的数据来做到这一点。用Gapminder和Wikipedia的信息丰富了《世界幸福报告》的数据,以便探索新的关系和可视化。
代码医生工作室
2019/11/26
3.1K0
使用Python快速制作可视化报表
pyecharts是一个用于生成Echarts图标的类库。实际就是Echarts与Python的对接。
py3study
2020/01/10
3.2K0
使用Python快速制作可视化报表
使用 Pandas, Jinja 和 WeasyPrint,轻松创建一个 PDF 报表
我们都知道,Pandas 擅长处理大量数据并以多种文本和视觉表示形式对其进行总结,它支持将结构输出到 CSV、Excel、HTML、json 等。但是如果我们想将多条数据合并到一个文档中,就有些复杂了。例如,如果要将两个 DataFrames 放在一张 Excel 工作表上,则需要使用 Excel 库手动构建输出。虽然可行,但并不简单。本文将介绍一种将多条信息组合成 HTML 模板,然后使用 Jinja 模板和 WeasyPrint 将其转换为独立 PDF 文档的方法,一起来看看吧~
周萝卜
2022/02/10
2K0
使用 Pandas, Jinja 和 WeasyPrint,轻松创建一个 PDF 报表
【功能篇】如何测试报表?
报表测试是我们测试人员都会经历的,报表涉及的测试点很多,比如上下游数据的比对、权限、性能、安全、接口、内容展示等等,且由于报表是用户最关心最常用的模块,所以如何保证报表的测试质量就显得尤为重要了。
张树臣
2019/07/31
2.3K0
【功能篇】如何测试报表?
如何制作实时库存报表
草料二维码暂不支持自动计算功能,无法看到实时的库存数量。但可以使用外部数据分析工具,如百度Sugar,连接草料二维码官方数据库,即可自由实现各类计算,包括实时库存。
草料二维码
2023/04/20
1.4K0
如何创建Python工程目录
如何创建一个简单但是比较规范的python工程目录,本文是学习了Learn Python the Hard Way相关内容后做的一些笔记。
py3study
2020/01/07
1.4K0
如何把Crystal Reports报表转换为ActiveReports报表
ActiveReports for .NET 6.0的最新更新增加了一个非常实用的工具,可以把Crystal Reports报表(2005和2008版本)转换为ActiveReports报表。ActiveReports的安装程序会在“程序”启动菜单“GrapeCity/ActiveReports 6”下增加两个菜单。 1. 使用"CrystalToAR2005"工具转换Crystal Reports 2005报表。 2. 使用"CrystalToAR2008"工具转换Crystal Reports 2008
葡萄城控件
2018/01/10
1.3K0
如何把Crystal Reports报表转换为ActiveReports报表
python 使用scapy创建arpi
[root@centos python]# python scapy_arping.py
py3study
2020/01/08
6470
Python自动化办公 | 如何实现报表自动化?
今天给大家分享一篇俊红新书《对比Excel,轻松学习Python报表自动化》中关于报表自动化实战的内容,文末也会免费赠送几本新书。
朱小五
2021/10/18
2.5K0
Python自动化办公 | 如何实现报表自动化?
pycharm中使用anaconda部署python环境_如何创建lamp环境
在同时使用Pycharm和Anaconda时,最好使用Anaconda统一管理环境,避免混乱,废话不多说,直接上流程。
全栈程序员站长
2022/09/27
6910
pycharm中使用anaconda部署python环境_如何创建lamp环境
报表应用系统中如何正确使用图表功能
相信对于报表应用系统研发人员而言,都不会对图表功能感到陌生,因为报表数据通常以图表和表格的形式显示。但是,你真的了解为什么需要使用图表功能吗,不同图表类型的最佳应用场景?本文将为你解开这些谜团。 (一) 为什么需要使用图表功能 图表是一种将数据以图形方式显示的可视化手段,多用于实现以下需求: 1. 让数据更易于阅读和理解 2. 展示数据数据对比 3. 发挥数据的影响力 4. 将原始数据转换为有用的管理决策信息 当数据变得易于阅读和理解时,我们就容易记住它,并在以后使用到这些数据,充分发挥数据的影响力。而且,
葡萄城控件
2018/01/10
1.3K0
报表应用系统中如何正确使用图表功能

相似问题

Python:创建报表模型(使用pandas)

07

使用python自动创建excel报表

10

如何使用ReportViewer创建报表?

11

如何使用htmltestrunner创建报表?

20

如何跨多个报表使用子报表或从子报表创建父报表?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档