我有一个复杂的定价数据,比如树结构。
示例将类似于计算机价格(监视器价格、主板价格等)在显示器类别中,我有更多的子类别,而在这些子类别下,我有更多的类别(显示器是27英寸,由戴尔生产,弯曲)。
我需要经常阅读这些定价信息(只读)像数千次。
我想用类来存储这些信息。因为我不知道我能不能在字典里这么做。有人有建议吗?
发布于 2016-11-07 00:47:22
Mongodb无疑是一种很好的可能性,但在您的示例中,只有50个条目,而只读取它可能会造成过度的后果,特别是在您需要熟悉如何执行查询时。
更快的方法很可能是通过熊猫:使用嵌套字典,最好创建一个输入JSON文件或字符串(如下面的示例所示),然后在“执行熊猫数据”中读取它。
然后,你可以用你想要的方式将它规范化,并在熊猫身上做必要的计算,这样你就能更快地学会:
这里是一个关于它的外观的例子:normalize.html
>>> data = [{'state': 'Florida',
... 'shortname': 'FL',
... 'info': {
... 'governor': 'Rick Scott'
... },
... 'counties': [{'name': 'Dade', 'population': 12345},
... {'name': 'Broward', 'population': 40000},
... {'name': 'Palm Beach', 'population': 60000}]},
... {'state': 'Ohio',
... 'shortname': 'OH',
... 'info': {
... 'governor': 'John Kasich'
... },
... 'counties': [{'name': 'Summit', 'population': 1234},
... {'name': 'Cuyahoga', 'population': 1337}]}]
>>> from pandas.io.json import json_normalize
>>> result = json_normalize(data, 'counties', ['state', 'shortname',
... ['info', 'governor']])
>>> result
name population info.governor state shortname
0 Dade 12345 Rick Scott Florida FL
1 Broward 40000 Rick Scott Florida FL
2 Palm Beach 60000 Rick Scott Florida FL
3 Summit 1234 John Kasich Ohio OH
4 Cuyahoga 1337 John Kasich Ohio OH
对于上面的数据,您可以很容易地得到短名=‘FL’的所有条目的总数之和,如下所示:
sum_of_fl_population = result[result['shortname']=='FL'].population.sum()
Out[11]: 112345
看一下这个链接,了解如何处理熊猫的数据。这可能是解决你问题的最好方法。http://pandas.pydata.org/pandas-docs/stable/10min.html
发布于 2016-11-06 22:43:53
我认为存储这些数据的一个好方法是有一个计算机对象,它可以有成员变量,如主板、监视器等。
然后,您可以有一个包含映射到计算机对象的唯一id的单一字典。这样你就能得到类似于
computers.get('12345').getMotherBoard().getMake()
computers.get('45678').getMonitor().getScreenResolution()
computers.get('54342').getRam().getPrice()
发布于 2016-11-06 23:21:30
去找大数据。
将ElasticSearch、MongoDB、CouchDB或其他许多东西(我猜)放在堆栈中,并将每种产品作为文档存储,从而使基础变得平坦。
为每种类型的文档创建一个索引(一个用于计算机屏幕,一个用于主板,.),基本上每种共享相同属性的对象都有一个索引,您就可以开始了。
以elasticSearch为例,关于为人父母:https://www.elastic.co/guide/en/elasticsearch/guide/2.x/parent-child.html https://www.elastic.co/guide/en/elasticsearch/guide/2.x/parent-child-mapping.html
我相信这比SQL更快,而且可能更容易使用。不过,有一个缺点,没有多少框架允许您使用这样的“新”数据库。不过,对于更知名的人来说,有一些与奥姆斯有关的地图
https://stackoverflow.com/questions/40455337
复制相似问题