首页 > 解决方案 > 正则表达式子返回无

问题描述

所以我正在使用这个程序,它接受一个 JSON 映射器输入,然后继续从源生成数据。我们正在导入股票数据,但有时我们会收到 50+ 之类的数据。

使用 jsonpath-ng 库,另一个开发人员制作了以下映射器,包括一个删除不需要的“+”字符的子程序,因为我们不想要这些。

{"quantity": "$..Stock.`sub(/\\\\+/, \\)`", "article_code": "$..Barcode"}

我遇到的问题是,当我们收到像 50+ 这样的数量时它工作正常,它将它转换为 50,但是当我们收到像 3 这样的东西时,它会将其转换为无。我似乎无法找到一种方法来防止没有“+”的值被转换为无。

有谁知道如何更改它,以便在找到时删除“+”,如果未找到,则让它保留而不是将其更改为 None?

标签: pythonregexjsonpath

解决方案


在 jsonpath-ng中似乎是一个深思熟虑的决定,如果sub没有改变任何东西,该项目将转换为None. 我觉得这相当令人费解。

作为一种解决方法,您可以+在字符串末尾附加 a ,然后用 重写它sub,这将始终修改它,而不是生成None.


推荐阅读