为python工件列表创建带有循环的json文件

2024-06-06 21:05:20 发布

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

我在列表变量中有许多文件(工件)的列表。(这里我只是把这个列表缩短为4个元素)

print(type(file_list))
<class 'list'>
print(file_list)
['file_AA.txt', 'file_BB.txt', 'file_CC.txt', 'file_DD.txt']

我使用python创建json字典,如下所示:

dictionary={
   "instrument" : instrument,
   "artifacts" : {
       "metadata" : metadata,
       "product_file" : product_file,
       "raw_fileAA": fileAA.txt},
   "schema" : "scene.v1.json"}

然后我这样保存它:

json_object = json.dumps(dictionary, indent = 4)
with open(scene_out, "w") as outfile:    
  outfile.write(json_object)

但我不知道如何使用“for”循环将整个文件列表放入字典中的“artifacts”列表中。我想得到这样的东西:

dictionary={
   "instrument" : instrument,
   "artifacts" : {
       "metadata" : metadata,
       "product_file" : product_file,
       "raw_fileAA": fileAA.txt},
       "raw_fileBB": fileBB.txt},
       "raw_fileCC": fileCC.txt},
       "raw_fileDD": fileDD.txt},
   "schema" : "scene.v1.json"}

请帮帮我


Tags: 文件txtjson列表rawdictionaryproductscene
2条回答

您可以像这样创建工件字典

file_list = ['file_AA.txt', 'file_BB.txt', 'file_CC.txt', 'file_DD.txt']

artifacts_dict = {'metadata': metadata, 'product_file': product_file }

artifacts_dict.update({'raw_'+file.replace('.txt',''):file for file in file_list})

然后在创建json字典时使用它

dictionary={
   "instrument" : instrument,
   "artifacts" : artifacts_dict,
   "schema" : "scene.v1.json"}

(key, values)需要添加到dictionary['artifacts']

dictionary={
   "instrument" : 'instrument',
   "artifacts" : {
       "metadata" : 'metadata',
       "product_file" : 'product_file',
       "raw_fileAA": 'fileAA.txt'},
   "schema" : "scene.v1.json"}

l = ['file_AA.txt', 'file_BB.txt', 'file_CC.txt', 'file_DD.txt']

for i in l:
    dictionary['artifacts']['raw_' + i.split('.')[0].replace('_', '')] = i
{'instrument': 'instrument',
 'artifacts': {'metadata': 'metadata',
  'product_file': 'product_file',
  'raw_fileAA': 'file_AA.txt',
  'raw_fileBB': 'file_BB.txt',
  'raw_fileCC': 'file_CC.txt',
  'raw_fileDD': 'file_DD.txt'},
 'schema': 'scene.v1.json'}

相关问题 更多 >