从返回语句获取和处理json响应

2024-07-02 11:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我才刚刚开始学习编程(还有python,flask),我有一个自己无法解决的问题(或者使用google)。你知道吗

我正试图通过youtubedatav3访问我的youtube频道数据,并使用官方google库进行oauth和数据检索。你知道吗

下面的代码是我正在使用的。方法的返回工作得很好,但是它只是在我的浏览器中呈现json响应,我无法“捕获”并处理它。你知道吗

@app.route('/')
def index():
  if 'credentials' not in flask.session:
    return flask.redirect('authorize')

  credentials = google.oauth2.credentials.Credentials(
      **flask.session['credentials'])

  client = googleapiclient.discovery.build(
      API_SERVICE_NAME, API_VERSION, credentials=credentials)

  return channels_list_by_username(client,
    part='snippet,contentDetails,statistics',
    forUsername='username')

我在考虑把调用放入一个新变量,json.dump文件()-正在加载响应并以这样的方式访问它,但它就是不起作用。你知道吗

感谢您的帮助。谢谢!你知道吗


Tags: 数据clientapijsonflaskreturnyoutubesession
2条回答

我想在看过youtubeapi的源代码之后,我明白了你在问什么。你知道吗

channels_list_by_username()print这是一些要标准输出的信息。你不想打印它,你想要实际的数据,以便处理它,对吗?快速浏览一下API,我想您可以尝试以下操作:

...
client = googleapiclient.discovery.build(
      API_SERVICE_NAME, API_VERSION, credentials=credentials)

results = client.channels().list(
    part='snippet,contentDetails,statistics',
    forUsername='username'
  ).execute()

... process data here ...
return results

看起来您的代码来自youtubeapi示例,该示例仅用于演示如何实现API。查看实际文档以了解如何获取原始数据。你知道吗

您可以将该调用的结果存储到一个变量中,处理它,然后返回它

@app.route('/')
def index():
  if 'credentials' not in flask.session:
    return flask.redirect('authorize')

  credentials = google.oauth2.credentials.Credentials(
    **flask.session['credentials'])

  client = googleapiclient.discovery.build(
    API_SERVICE_NAME, API_VERSION, credentials=credentials)

  # Here is your variable
  channels = channels_list_by_username(client,
    part='snippet,contentDetails,statistics',
    forUsername='username')

  # Process it
  print(channels)
  # Add other processing stuff here

  # Return it
  return channels

相关问题 更多 >