【问题标题】:How to Convert Soundcloud API Responses into CSV in Python?如何在 Python 中将 Soundcloud API 响应转换为 CSV?
【发布时间】:2015-08-19 22:10:30
【问题描述】:

我,一个新手,正在使用 Python 中的 Soundcloud API,当我得到大量数据作为回报时(作为一个对象,我猜)我不确定如何操作它:

favorites = client.get('/me/favorites')
<class 'soundcloud.resource.ResourceList'>

我猜这是一种数据包,它有自己的属性。我能做到:

for favorite in favorites:
    print favorite.id

这将为我提供我收藏的歌曲的 ID 列表。

146967741
136766472

但是,我怎样才能看到这个对象有哪些属性可供我使用,更重要的是,我怎样才能将其转换为我可以查看的 CSV?

谢谢!

【问题讨论】:

    标签: python csv soundcloud


    【解决方案1】:

    假设您使用的是 soundcloud-python,您可以使用 fields 方法获取内部 dict 或 keys 来查看可用名称。 来源:resource.py

    至于 csv 问题,获得有关您已经尝试过的内容的更多信息会很有帮助,但您可以使用 csv 模块的 DictWriter 类,并将来自 fields() 的字典传递给它。更多详细信息,请访问python documentation

    将两者放在一起:

    import csv
    with open('names.csv', 'w') as csvfile:
        fieldnames = favorites[0].keys()
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    
        writer.writeheader()
    
        for favorite in favorites:
            writer.writerow(favorite.fields())
    

    请注意,我没有对此进行测试,也没有 API 密钥。 SoundCloud API Guide 也有大量有价值的信息。

    【讨论】:

    • 谢谢!那么从 soundcloud 返回的数据,你能说它是什么格式的?这不是 JSON,对吧?所以我不能从将 JSON 转换为 CSV 的角度来看这个(除非我只是通过 HTTP 直接访问 API)对吗?
    • 如果您查看resource.py 链接,您会看到将传入请求转换为ResourceList 的代码。返回的数据确实是一个json字符串,正在被json模块函数loads()ref转换成dict()。
    • 啊!这很有帮助!没想到看Soundcloud的wrapper的源码!谢谢,我会更深入地研究一下:)
    【解决方案2】:

    与任何其他对象一样。

    for favorite in favorites:
        print dir(favorite)
    

    python世界里有很多模块比如csv module (python standard library)

    import csv
    with open('some.csv', 'wb') as f:
        writer = csv.writer(f)
        writer.writerows(someiterable)
    

    【讨论】:

    • 谢谢!我如何描述这个数据对象所在的格式?以便我了解如何将这个对象的子集转换为 CSV?
    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2020-12-19
    • 2016-11-05
    • 2021-08-13
    相关资源
    最近更新 更多