首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用tqdm for JSON文件加载进度条?

如何使用tqdm for JSON文件加载进度条?
EN

Stack Overflow用户
提问于 2019-06-15 05:18:57
回答 1查看 1.8K关注 0票数 3

我正在编写一个用于JSON文件处理的Python脚本。它基本上分为三个过程:加载、编码和打印。虽然我已经使用tqdm轻松地创建了用于编码和打印的进度条,但我不知道如何为load创建进度条。

我彻底阅读了tqdm文档,甚至在这里也搜索过,但没有任何线索。

代码语言:javascript
复制
import json
from tqdm import tqdm, trange
from iso3166 import countries

geo_json_events_path = r'/cygdrive/c/elastic/gtd.geojson'

with open(geo_json_events_path) as f:
    data = json.load(f)

我希望看到json.load()方法的进度条。

EN

回答 1

Stack Overflow用户

发布于 2019-06-17 22:22:23

明白了!

json.load()方法中使用object_hook参数。我已经尝试将其与一个简单的计数函数一起使用,该函数返回的值比源文件中的行数大三倍,因此我认为它是错误的。在了解了我的函数为json.load返回的每个字典执行之后,我意识到我的文件中每行有三个字典,所以我的函数是OK的,我只需要在json数据中找到正确的嵌套级别来获得所需的迭代。这就是结果:

代码语言:javascript
复制
from tqdm import tqdm
import json

def hook(obj):
    value = obj.get("features")
    if value:
    pbar = tqdm(value)
    for item in pbar:
        pass
        pbar.set_description("Loading")
    return obj

f = open('/cygdrive/c/elastic/gtd_tst.geojson')
docs = json.load(f, object_hook=hook)
for doc in docs:
    print(doc)

这篇文章中的第一个答案对找到解决方案非常有帮助:Python decode nested JSON in JSON

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56605238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档