我有一个JSON dicts列表,我想检查其中一个JSON结构中的名称是否包含字符子集



正如标题所述,我想检查名称字段中是否有特定的字符集。如果名称字段包含字符,我想将其作为字符串写入一个新变量。

Master_Reports包含一个JSON结构列表。我在下面附上了一个结构的一部分。

[{'directory': {'item': [{'last-modified': '2020-03-13 16:17:38',
'name': '0001628280-20-003532-index-headers.html',
'type': 'text.gif',
'size': ''},
{'last-modified': '2020-03-13 16:17:38',
'name': '0001628280-20-003532-index.html',
'type': 'text.gif',
'size': ''},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-20191231_htm.xml',
'type': 'text.gif',
'size': '1315390'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-20191231_lab.xml',
'type': 'text.gif',
'size': '705817'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-20191231_pre.xml',
'type': 'text.gif',
'size': '469764'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-2019x10kxex1041xi.htm',
'type': 'text.gif',
'size': '117747'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-2019x10kxexx412de.htm',
'type': 'text.gif',
'size': '22977'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-2019x10xkxex1042s.htm',
'type': 'text.gif',
'size': '287964'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-2019x10xkxex211.htm',
'type': 'text.gif',
'size': '2275'},
{'last-modified': '2020-03-13 16:17:38',
'name': 'wkhs-2019x10xkxex231.htm',
'type': 'text.gif',
'size': '2523'}],
'name': '/Archives/edgar/data/1425287/000162828020003532',
'parent-dir': '/Archives/edgar/data/1425287'}}

以下是我访问JSON结构的代码:

for report in master_reports:
current_report = master_reports
for i in range(0,len(current_report['directory']['item'])):
if 'def' in current_report['directory']['item'][i]['name']:
file_def = current_report['directory']['item'][i]['name']

这给了我一个错误:TypeError: list indices must be integers or slices, not str

master_reports是单个项目的列表:请注意左括号。因此,current_report[<string>]无效。相反,尝试

current_report = master_reports[0]

由于def不在任何名称中,因此您现在完全没有输出。

您正在使用for循环对master_reports进行迭代,其中单个对象作为报告。

获取current_report=master_reports也提供current_report作为列表。

因此,尝试获取current_report['directory']会出错,因为您尝试使用str值获取索引。

下面试试:

for report in master_reports:
for item in report['directory']['item']:
if 'def' in item['name']:
file_def = item['name']

最新更新