首页 > 解决方案 > Python dpath.util.get 空字符串键错误

问题描述

我读了一个简单的 JSON 文本文件,它解析为一个 dict 就好了。

>>> data.keys()
dict_keys(['metadata', 'value'])

我想获取特定元素,我通常使用 dpath 包。但是,在这种情况下,我收到一个错误,这似乎暗示我

dpath.util.get(data, 'metadata', separator='..')
InvalidKeyName: Empty string keys not allowed without dpath.options.ALLOW_EMPTY_STRING_KEYS=True

我没有看到任何空字符串键,只有上面的两个。我可以使用其他一些看似随机的 JSON 文本文件进行重现,但对其他人来说效果很好。知道这里发生了什么吗?

标签: pythonjsondpath

解决方案


在库的代码库中搜索此错误消息会发现dpath/path.py:88

    for (k, v) in iteritems:
        if issubclass(k.__class__, (string_class)):
            if (not k) and (not dpath.options.ALLOW_EMPTY_STRING_KEYS):
                raise dpath.exceptions.InvalidKeyName("Empty string keys not allowed without "
                                                      "dpath.options.ALLOW_EMPTY_STRING_KEYS=True")

因此,当您的数据结构有空键时会引发此错误。


推荐阅读