【问题标题】:Query language for JSON or how to use Javascript/Lua in Python?JSON 的查询语言或如何在 Python 中使用 Javascript/Lua?
【发布时间】:2021-03-17 12:07:21
【问题描述】:

我正在寻找查询提取特定数据的 JSON 的解决方案。 该解决方案将嵌入我们的 Python 软件(更准确地说是 Python AWS Lambda)中,用户应该能够在 GUI 中指定此类查询字符串。 例如,我们有这样的 JSON,如果“typ_dokument”等于“szczepienie”且“data_szczepienia”等于 3434343,我将从“files”数组中提取“nazwisko_weterynarza.value”。 我已经尝试使用 JSON 路径,但我失败了。
在 Python 中嵌入 Lua/Javascript 怎么样,但是如何创建一个“沙盒”来确保这样的解决方案是安全的?

{
    "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
                        }
                    }
                ]
            }
        }
    ]
}

【问题讨论】:

    标签: javascript python json lua jsonpath


    【解决方案1】:

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

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

    Reurns ["Nowak"](你可以试试online)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 2011-02-23
      • 2020-07-12
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多