我有一个包含大约 30,000 个项目的大型 JSON 文件,其中包含以下项目:
d = {"1102344": "Install 3245 xxx", "23456": "Install 7896 zzz", "90887": "Install 6655 ddd"}
我一直在尝试为匹配的项目获取key, ,如下面的示例代码所示:valuenumquery
def test(num, query):
l = [(k,v) for k,v in d.items() if num in v and v.strip().startswith(query)]
return l
test('3245','Install')
#Output: [('1102344', 'Install 3245 xxx')]
上面的代码作为字典d的项目很少。但是,当我为我的数据集运行它时,我收到以下错误:
argument of type `bool` is not iterable
我四处寻找有关 SO 的帮助,许多答案都指向使用ijson,但我仅限于安装第三方库。是否有一种节省内存的替代方法来搜索 dict 中的子字符串values?我已经用尽了尝试不同事物的选项,但不确定为什么会出现此错误。JSON 是有序的并且是有效的。
只是为了让您知道,它以前可以工作,但现在我在 5 次中出现 3 次出现此错误。因此该错误间歇性地出现,但对于应用程序执行其工作来说非常频繁。JSON 文件或代码没有任何变化,但是,JSON 文件大小增加了,这让我认为这可能是原因。