JSON的查询语言或者如何在Python中使用JavaScript/Lua?

我正在寻找一种解决方案来查询JSON,以提取特定的数据。 这个解决方案将被嵌入到我们的Python软件中(更确切地说是Python AWS Lambda),用户应该可以在GUI中指定这样的查询字符串。 例如,我们有这样的JSON,我将从“files”数组中提取“nazwisko_weterynarza.value”,如果“typ_dokument”等于“szczepienie”并且“data_szczepienia”等于3434343。 我尝试使用JSON Path,但失败了。

嵌入式Lua / JavaScript在Python中怎么样,但如何创建“沙盒”来确保这样的解决方案是安全的?

{
    "files" :
        [
        {
            "meta":  {
                "updated": 555555,
                "attributes": [
                    {
                        "typ_dokumentu":
                            {
                                "formula_type": "NONE",
                                "formula": "",
                                "value_type": "string",
                                "value": "szczepienie",
                                "updated": 5345435435345
                            }
                    },
                    {
                        "data_szczepienia":
                        {
                            "formula_type": "NONE",
                            "formula": "",
                            "value_type": "int",
                            "value": 3434343,
                            "updated": 5345435225345
                        },
                    },
                    {
                        "nazwisko_weterynarza":
                        {
                            "formula_type": "NONE",
                            "formula": "",
                            "value_type": "string",
                            "value": "Nowak",
                            "updated": 5345435225345
                        }
                    }
                ]
            }
        },
        {
            "meta":  {
                "updated": 555555,
                "attributes": [
                    {
                        "typ_dokumentu" :
                        {
                            "formula_type": "NONE",
                            "formula": "",
                            "value_type": "string",
                            "value": "Certyfikat urodzin",
                            "updated": 5345435435345
                        }
                    },
                    {
                        "data_urodzin" :
                        {
                            "formula_type": "NONE",
                            "formula": "",
                            "value_type": "int",
                            "value": 8888888,
                            "updated": 5345435225345
                        }
                    }
                ]
            }
        }
    ]
}
点赞
用户8291949
用户8291949

AWS 的 JSON(参考)路径查询的能力不足。一些更高级的 JSONPath 处理器可以做到,例如使用 Jayway 的 JsonPath 我们可以运行这样的查询:

$.files..meta.[?(@.attributes[*].typ_dokumentu.value contains 'szczepienie' && @.attributes[*].data_szczepienia.value contains '3434343')]..nazwisko_weterynarza.value

返回 ["Nowak"](您可以在 此处 尝试)。

我不知道您所说的嵌入式 JavaScript/Lua 的意思,但无论如何,您都可以创建一个 Web 服务,利用您选择的实现进行查询。只要您的 API 得到适当的保护,安全性就不会成为问题。

2020-12-08 03:19:44