【发布时间】:2018-12-05 19:14:51
【问题描述】:
问题是保存一个字典用于数据分析,以便它可以扩展。 我正在执行 10000 次搜索,并根据结果为每个查询保存一个字典。最后,我得到了如下的字典:
{
'query_1' : {'has_result': True (or False),
'direct_result': True (or False),
'title': "title_1",
'summary': "summary_1",
'infobox': {'header_11': "data_11",
'header_12': "data_12",
.
.
.
}
'query_2' : {'has_result': True (or False),
'direct_result': True (or False),
'title': "title_2",
'summary': "summary_2",
'infobox': {'header_21': "data_21",
'header_22': "data_22",
.
.
.
}
.
.
.
}
有问题的部分显然是“信息框”。我不知道每个“信息框”会得到多少个键值对(通常不超过 50 个)。并且每个信息框的键都应该不同。
目前,我只能想到以下方法将数据保存为csv。
+---------+------------+---------------+---------+-----------+----------------+--------------+
| query | has_result | direct_result | title | summary | infobox_header | infobox_data |
+---------+------------+---------------+---------+-----------+----------------+--------------+
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_1 | data_1 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_2 | data_2 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_3 | data_3 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_4 | data_4 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_5 | data_5 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_1 | data_1 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_2 | data_2 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_3 | data_3 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_4 | data_4 |
+---------+------------+---------------+---------+-----------+----------------+--------------+
我的解决方案的问题是,'title' 和 'summary' 是一个字符串变量。对于 10000 个查询,这没什么大不了的。我最终得到大约 200,000 行。但我只是在想,从理论上讲,这是保存这本字典以进行数据分析的最佳方式。
如果将来我使用 100,000 或 1,000,000 个查询怎么办?你将如何解决这个问题?你会从一开始就使用不同的数据结构吗?以及如何为数据分析做好准备?
【问题讨论】:
-
您到底想“优化”什么?文件大小? IO时间?
标签: python dictionary data-structures