python描述对象静态特性的数据为_python-为Web应用程序保留几乎静态的数据的最佳方法是什么?...

我正在用python构建Web应用程序.此应用程序的一部分正在处理可以描述如下的数据:

Symbol Begin Date End Date

AAPL Jan-1-1985 Dec-27-2010

...

数据有些静态-将定期更新,即:可以添加新条目,并且可以为所有条目更新“结束日期”字段.

现在的问题是:鉴于数据集具有或多或少的静态特性,什么是存储和使用数据集的最佳方法是什么? “工作”是指获取随机行,希望每秒获取多次.

我可以使用XML文件,SQL DB或SQLite,JSON对象文件以及内存中的某种python对象来完成此操作.

不同解决方案的利弊是什么?我会很感谢您的解释和帮助(例如,在SQL DB之后,直到10次/秒的XML文件是最好的).

更新:感谢您提供所有答案!只是很小的更新:当前的设置大约是3K行.每年可能增长到15,000条线.访问模式:每天定期更新一次完整的更新;因此添加行和更新结束日期都将立即完成.确实可以通过符号获取随机线,每秒可以完成几次.

解决方法:

每当数据更改时,我都会生成一个Python源文件,并且该文件主要由字典组成.这假设查找是通过符号进行的,并且数据很容易装入内存.

data = {

"AAPL": ("Jan-1-1985", "Dec-27-2010"),

...

}

要批量更新结束日期,请使用pprint.pprint覆盖整个文件.

编辑:为了说明如何写入这样的文件,这是一个用随机数据填充文件的脚本

import random, string, pprint

def randsym():

res =[]

for i in range(4):

res.append(random.choice(string.uppercase))

return ''.join(res)

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',

'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

days = range(1,29)

years = range(1980,2010)

def randdate():

return "%s-%s-%s" % (random.choice(months),

random.choice(days),

random.choice(years))

data = {}

for i in range(15000):

data[randsym()] = (randdate(), "Dec-27-2010")

with open("data.py", "w") as f:

f.write("data=")

f.write(pprint.pformat(data))

要访问数据,请执行数据导入数据.

标签:data-structures,static,python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值