python - 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 文本文件进行重现,但对其他人来说效果很好。知道这里发生了什么吗?
解决方案
在库的代码库中搜索此错误消息会发现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")
因此,当您的数据结构有空键时会引发此错误。
推荐阅读
- python - 矩形晶格适合噪声坐标
- ios - 如何使用标签文本 (Int) 值编写 if 条件
- python-3.x - 如何在熊猫中选择每个唯一记录的最后 5 行
- ios - QR 扫描仪 URL 字符串到 WKWebView
- similarity - 有没有办法在相似函数中组合多个距离度量?
- java - Java Excel Api 字符编码问题
- discord - Discord ID(ulong 编号)是可接受的身份验证形式吗?
- r - 从 Date 到 POSIXct 对象的转换 - 错误一小时
- .net - SagePay 直接集成套件 v4.00
- google-apps-script - 如何为 Smartsheet 生成重定向 URI 以将数据传递到 Apps 脚本