繁体   English   中英

如何将 Python 输出从 for 循环写入文件?

[英]How to write Python output to file from for loop?

我正在使用 Instaloader 包从 Instagram 抓取一些数据。

理想情况下,我希望抓取与特定主题标签相关的帖子。 我创建了下面的代码,它输出抓取的数据行,但我无法将此输出写入 .txt、.csv 或 .json 文件。

我尝试首先将循环输出附加到列表中,但该列表为空。 我输出到文件的努力也没有成功。

我知道我在这里遗漏了一步,请提供您的任何意见! 谢谢你。

    import instaloader
    import json

    L= instaloader.Instaloader()
    for posts in L.get_hashtag_posts('NewYorkCity'):
       L.download_hashtag('NewYorkCity', max_count = 10)
       with open('output.json', 'w') as f:
       json.dump(posts, f)
       break

    print('Done')

查看您的代码,似乎间距可能有点偏。 当您使用带有“with”语句的 open 命令时,它会在文件对象上执行 try: / finally: 。

在您的情况下,您创建了一个代表此文件对象的变量 f 。 我相信如果您进行以下更改,您可以将 json 数据写入文件。

    import instaloader
    import json

    L= instaloader.Instaloader()
    for posts in L.get_hashtag_posts('NewYorkCity'):
       L.download_hashtag('NewYorkCity', max_count = 10)
       with open('output.json', 'w') as f:
           f.write(json.dump(posts))
           break

    print('Done')

我确定您是有意这样做的,但是如果您在休息时的目标是只返回循环中的第一个值,您也可以进行此编辑

for posts in L.get_hashtag_posts('NewYorkCity')[0]:

这将返回列表中的第一项。

例如,如果您想要前 3 个,则可以执行 [:3]

请参阅有关Python 数据结构的本教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM