【问题标题】:How do I fix json from the youtube v3 api with python?如何使用 python 从 youtube v3 api 修复 json?
【发布时间】:2021-03-15 06:11:24
【问题描述】:

我正在使用 youtube v3 api 从 youtube 频道获取 youtube 数据,并且我正在尝试使其输出的 json 有效。我已经用双引号替换了所有单引号,但我唯一的问题是 json 有一个根本没有引号的项目。 这是我的蟒蛇:

from googleapiclient.discovery import build
import json

api_key = "XXXXXXXXXX"

youtube = build('youtube', 'v3', developerKey=api_key)

request = youtube.channels().list(
        part='statistics',
        id="UCZuwBN1DWfgObYprETYk0eg"
    )

response = request.execute()

responsestring = str(response)

replaced = responsestring.replace("'", '"')


print(replaced)

yes = json.loads(replaced)

#responsejson = json.loads(responsestring)
#^this fails because of the invalid json

这是输出的json:

{"kind": "youtube#channelListResponse", "etag": "QHkx_kkeJgXRDHWbuMXUaYyQ3EQ", "pageInfo": {"totalResults": 1, "resultsPerPage": 5}, "items": [{"kind": "youtube#channel", "etag": "WXRPwYh-SXn_vwy93t3wnzu99gM", "id": "UCZuwBN1DWfgObYprETYk0eg", "statistics": {"viewCount": "3512315", "subscriberCount": "58600", "hiddenSubscriberCount": False, "videoCount": "151"}}]}

有没有办法让它在 False 或 True 上有双引号? (或者只是没有双引号的任何东西都有双引号)。如果您能提供帮助,请提前致谢。

【问题讨论】:

    标签: python json api youtube


    【解决方案1】:

    首先输出不是 JSON;它是一本字典。您可以通过type(response) 进行检查。 在大多数情况下,第二个词典应该可以正常工作。如果您仍想将其转换为 JSON,则必须使用 JSON.dumps。下面是代码

    # Convert dict to JSON
    response_JSON = json.dumps(response)
    # try to load JSON
    json_load = json.loads(response_JSON)
    json_load
    

    输出:

    {'kind': 'youtube#channelListResponse',
     'etag': '85jouxT6VPwZltMItbtqSpICBgE',
     'pageInfo': {'totalResults': 1, 'resultsPerPage': 5},
     'items': [{'kind': 'youtube#channel',
       'etag': 'gkhgrDmYZaof9gPHKNeDSEtRiBY',
       'id': 'UCZuwBN1DWfgObYprETYk0eg',
       'statistics': {'viewCount': '3512365',
        'subscriberCount': '58600',
        'hiddenSubscriberCount': False,
        'videoCount': '151'}}]}
    

    【讨论】:

    • 我实际上把 dict 变成了一个字符串,但我试试这个。
    • 如果可能,请考虑生成新的 api 密钥。因为现在的人接触了互联网。
    • 我会的,谢谢你告诉我我没看到。
    猜你喜欢
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2015-08-05
    • 2015-07-21
    • 2016-04-08
    • 1970-01-01
    • 2015-12-11
    • 2017-06-08
    相关资源
    最近更新 更多