【问题标题】:How to parse GraphSON data from Neptune as a list of dictionaries?如何将 Neptune 的 GraphSON 数据解析为字典列表?
【发布时间】:2022-12-06 03:23:10
【问题描述】:

如果您使用 AWS 在此处提供的代码发出签名请求:https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-connecting-python.html

然后,如果您从 python 脚本执行这样的查询:

make_signed_request(query="g.V().limit(10).valueMap(true).toList()")

它会输出一个丑陋的无法使用的东西,如下所示:

{
    "requestId": "bf942e84-ff49-42c7-a65c-ef43f45g5h63",
    "status": {
        "message": "",
        "code": 200,
        "attributes": {
            "@type": "g:Map",
            "@value": []
        }
    },
    "result": {
        "data": {
            "@type": "g:List",
            "@value": [
                {
                    "@type": "g:Map",
                    "@value": [
                        "names",
                        {
                            "@type": "g:List",
                            "@value": ["David Bowie"]
                        }
                       ..., etc.

而如果我在笔记本上运行相同的查询,如下所示:

%%gremlin --store-to foo

g.V().limit(10).valueMap(true).toList()

然后 foo 是一个格式很好的字典列表,如下所示:

[
    {'names': ['David Bowie'], 'dob': [08-01-1947]},
    {'names': ['Michael Jackson'], 'dob': [29-08-1958]},
]

如何让 maked_signed_request 函数以与笔记本相同的方式返回数据?

【问题讨论】:

    标签: gremlin amazon-neptune


    【解决方案1】:

    您看到的是默认的 HTTP 响应格式,您可以从任何“Gremlin 服务器兼容”的 TinkerPop 端点看到这种格式。在幕后,图形笔记本笔记本正在使用 Gremlin Python 客户端并通过网络套接字发送请求。 Gremlin Python 客户端可以很好地为您反序列化该结果。在调用 Neptune Gremlin 端点时,您基本上有两个选择。

    1. 为您的首选编程语言(如果存在)使用特定的 Gremlin 客户端。
    2. 调用 HTTP 端点并对 GraphSON 结果进行后处理。与其编写您自己的序列化程序,您更有可能重新利用其中一个客户端的序列化程序。如果可能的话,我会使用选项 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 2018-02-11
      • 2014-10-07
      • 2021-05-01
      • 2021-11-24
      • 2020-07-09
      • 1970-01-01
      相关资源
      最近更新 更多