如何使用python将一个大的.json文件读入redis,以便创建键值对?
我有一个很大的json文件,其中包含一组结构化的位置数据(坐标、类别等),我需要在redis中创建键值对以供进一步查询。我已经能够在这里和那里找到一些信息,但我正在努力把它们整合成一些有用的东西 这是json的一般结构如何使用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%
{
"_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文件,同时创建键值对,这将允许我以最佳方式查询这些值。这是一个多步骤的过程。此外,还有一些“额外”的事情需要你去处理。让我试着回答。看看这是否有帮助。