循环通过图像文件夹迭代并输出到一个JSON文件中



我不是开发人员,我对编程的知识非常有限。我了解如何使用和操作Python脚本,但是写它们是我尚未学习的东西。请有人可以帮助一个noob :(

我正在使用Sigeengine使用API来评估.jpg图像的大文件夹,以表明它们的清晰度和颜色属性。API的文档仅提供一个小脚本来一次评估一个图像。我已经与视力发动机的支持进行了交谈,他们不愿意提供批处理处理的脚本,考虑到所有其他API公司通常都这样做,这很奇怪。

我需要一些帮助创建一个for循环,该循环将使用python脚本通过图像文件夹迭代并将API结果输出到一个JSON文件中。对如何构建此脚本的任何帮助将不胜感激。

这是一个简单的图像检查的视觉代码:

from sightengine.client import SightengineClient
client = SightengineClient("{api_user}", "{api_secret}")
output = client.check('properties','type').set_file('/path/to/local/file.jpg')

谢谢

部分猜测是一种猜测,因为我不知道output的外观。我假设它以JSON格式返回。如果是这样,您可以将单个JSON响应附加到单个JSON结构中,然后使用json.dump()写入文件。

,那部分是一个猜测。另一个方面是您要通过JPG文件进行迭代,您可以使用osfnmatch来执行此操作。只需调整根目录/文件夹即可通过所有.jpg扩展程序搜索时就可以通过。

from sightengine.client import SightengineClient
import os
from fnmatch import fnmatch
import json
client = SightengineClient("{api_user}", "{api_secret}")
# Get your jpg files into a list
r = 'C:/path/to/local'
pattern = "*.jpg"
filenames = []
for path, subdirs, files in os.walk(r):
    for name in files:
        if fnmatch(name, pattern):
            #print (path+'/'+name)
            filenames.append(path+'/'+name)

# Now iterate through those jpg files
jsonData = []            
for file in filenames:
    output = client.check('properties','type').set_file(file)
    jsonData.append(output)
with open('C:/result.json', 'w') as fp:
    json.dump(jsonData, fp, indent=2)

最新更新