Dropbox元数据通过python转换为JSON

问题描述 投票:0回答:1

我正在尝试使用以下内容以json格式在我的保管箱中输出某些文件的元数据。

for entry in dbx.files_list_folder(path = '/TG/').entries:
    print(entry.name)
    path = ("/TG/" + str(entry.name))
    data_output = {dbx.files_get_metadata(path=path)}

    if '.py' in path:
        print(data_output)

        with open(write_file, 'w') as outfile:
            json.dump(data_output, outfile)

它正在输出TypeError:类型集的对象不是JSON可序列化的。

python json dropbox
1个回答
0
投票

通过使用{},您将files_get_metadata调用的结果放入files_get_metadata,该文件不可JSON序列化。在您共享的代码中,这里似乎不需要任何设置,因此您只需删除set{。这将保留实际的}类型,尽管这实际上也不是JSON可序列化的。您需要将其转换为对您的用例有意义的内容。例如,最简单的是,只需在其上调用FileMetadata

此外,按照编写的方式,您的代码有点多余。 str方法已经为您提供了从files_list_folder中获得的相同信息,因此您可以删除files_list_folder调用。 files_get_metadata方法返回与files_get_metadata返回的相同files_list_folder对象的列表。 (删除Metadata调用也应该使您的代码运行得更快。)

而且,您可以直接从条目中获取路径,而无需对其进行重构。

经过所有这些更改,看起来就像:

files_get_metadata
© www.soinside.com 2019 - 2024. All rights reserved.