用gist修订版的不同名称保存csv文件,并显示不同的

2024-10-02 12:37:45 发布

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

我有一个gist(csv格式),每天更新,包含n修订。每个修订数据彼此不同。你知道吗

我需要知道每个版本之间的差异,所以我使用gistapi检索可以保存在csv中的版本

我的要求:

  1. 如何下载和保存每个url csv,即示例.csv换个名字?
  2. 怎样才能得到每一次修订的差异?

点击这里下载文件。我尝试了urlib,请求pypackages,但是我不知道我在哪里后面。谢谢你知道吗

gist_ids = 'abc'

def main():
    gh = github3.login(
        token=os.environ.get('my_token'),
        url='  ')
    my_gist = gh.gist(gist_ids)
    for gist_commit in my_gist.commits():
        resp_str= gist_commit.get_gist().as_json()
        resp_json = json.loads(resp_str)
        resp_url = resp_json['files']['example.csv']['raw_url']
    print resp_url

if __name__ == '__main__':
    main()

O/p:我有4个修订版,所以它显示了4个URL https://github.com/gist/eec70654d178a8e1fe497d0bce94e0db/raw/5c058121cc4f289773b7013208ca5c5b0d97ba33/example.csvhttps://github.com/gist/eec70654d178a8e1fe497d0bce94e0db/raw/cfb04e18bdf18bf7ab0b708951f62d2095c49f7d/example.csvhttps://github.com/gist/eec70654d178a8e1fe497d0bce94e0db/raw/a20174f568129df4348d355eb0d6e378db7fa646/example.csvhttps://github.com/gist/eec70654d178a8e1fe497d0bce94e0db/raw/137c57ef411067564341d389571dab2da070c828/example.csv


Tags: csvhttps版本githubcomjsonurlraw
1条回答
网友
1楼 · 发布于 2024-10-02 12:37:45

所以你把事情复杂化了。github3.py返回的每个对象都有您想要的信息。你知道吗

我把你的代码放在下面,稍微修改了一下。总结

  1. 我删除了as_json()的用法,因为没有必要将数据强制到字符串中或从字符串中强制出来。如果你想要一本字典,你可以用as_dict()

  2. 接下来,我使用gist的提交历史,并使用它来查找每个修订的文件。

  3. 使用GistHistory对象和实际的GistFile对象,我构造文件名来保存它们,使它们看起来像5c058121cc4f289773b7013208ca5c5b0d97ba33-example.csv

  4. 最后,我使用GistFile对象实际检索文件内容并将其保存到磁盘

我希望这有帮助。你知道吗

gist_ids = 'abc'

def main():
    gh = github3.login(
        token=os.environ.get('my_token'),
        url='  ')
    my_gist = gh.gist(gist_ids)
    for gist_commit in my_gist.commits():
        gist = gist_commit.get_gist()
        gist_file = [file for file in gist.files() 
                     if file.filename == 'example.csv']
        filename = '{}-{}'.format(gist_commit.version, gist_file.filename)
        with open(filename, 'wb') as fd:
            fd.write(gist_file.content())
        print filename

相关问题 更多 >

    热门问题