如何使用python将一个大的.json文件读入redis,以便创建键值对?

如何使用python将一个大的.json文件读入redis,以便创建键值对?,python,json,database,redis,Python,Json,Database,Redis,我有一个很大的json文件,其中包含一组结构化的位置数据(坐标、类别等),我需要在redis中创建键值对以供进一步查询。我已经能够在这里和那里找到一些信息,但我正在努力把它们整合成一些有用的东西 这是json的一般结构 { "_id" : NumberInt(83412), "contact" : { "GooglePlaces" : null, "Foursquare" : "https://foursquare.com/v/caf%C3%

我有一个很大的json文件,其中包含一组结构化的位置数据(坐标、类别等),我需要在redis中创建键值对以供进一步查询。我已经能够在这里和那里找到一些信息,但我正在努力把它们整合成一些有用的东西

这是json的一般结构

{ 
    "_id" : NumberInt(83412), 
    "contact" : {
        "GooglePlaces" : null, 
        "Foursquare" : "https://foursquare.com/v/caf%C3%A9-vavin/4adcda06f964a520eb3221e3"
    }, 
    "name" : "Café Vavin", 
    "location" : {
        "city" : "Paris", 
        "coord" : {
            "coordinates" : [
                2.3307001590729, 
                48.843868593865
            ], 
            "type" : "Point"
        }, 
        "address" : "18 rue Vavin"
    }

考虑到Json数据是嵌套/多级的,您不能将它们直接存储在Redis散列中。因此,您必须序列化该值并将其存储为字符串(其他格式也可以,但为了简单起见,我们先使用字符串)。这意味着,当您
从Redis获取
值时,您必须将Json(存储为字符串)反序列化到代码中的相应对象。因此,键将是
id
,值将是Json的其余部分作为字符串

现在,继续将巨大的Json加载到Redis中,这是一个分两步的过程:

  • 解析输入Json文件,并将其分解为可用于“Redis Mass Insertion”的格式。您必须提取
    \u id
    的值,并将其用作键,提取Json的其余部分,并按照上面链接中显示的格式将其用作
  • 使用上一步中的内容作为输入运行Redis mass insertion。您可以将每个输入添加到Redis中的单个
    集合中
  • 现在,如果您有
    id
    ,就可以在
    set
    上运行
    get
    查询记住,Redis是一种内存缓存,经过优化可实现更快的存储和检索。您不能在Redis上运行复杂的查询,除非您根据不同的查询需要以不同的方式存储/复制数据。

    如果你想让我补充更多细节,请随意评论这个答案。在问题的评论部分,我只能回答这么多。因此,我把一切都整合到这个答案中。如果你想让我解决任何具体问题,我可以补充更多

    质量插入的更多参考和示例:


    请通过提供示例来指定Json数据的结构。如果您有任何代码,请指定以及。你看过Redis Mass Insertion了吗?我在原始帖子中添加了一个示例。我看了你的链接,似乎有点超出我需要做的,但我会看看其中是否有什么可以帮助我。在你的Redis中,关键和价值是什么?您的示例Json中的键是
    id
    ,值是所有其他属性的剩余值吗?还是这个问题?您希望在Redis上运行哪些查询?基于此,您可以在Redis中找到关键值。这本质上就是问题所在。据我所知,在这种情况下,该值将始终是“剩余值”。我期待着回答这个问题;“建立一个key-value Redis数据库,按来源、类别提供一系列评论,并有效计算一些统计数据,如平均评级和标准差”。我需要导入我拥有的大量json文件,同时创建键值对,这将允许我以最佳方式查询这些值。这是一个多步骤的过程。此外,还有一些“额外”的事情需要你去处理。让我试着回答。看看这是否有帮助。