【问题标题】:Huge dictionary Python not working巨大的字典Python不工作
【发布时间】:2014-03-02 16:56:00
【问题描述】:

我有一本非常大的 Python 字典。 . .它不在 CodeRunner 或 Xcode 中编译

我有一个列表,我要翻译的不是那么大,但它不能正常工作,因为字典太大了。 .字典中有 23124 个键。 有没有办法通过创建数据库或其他方式来处理大型字典?

当我将字典复制并粘贴到 CodeRunner 或 Xcode 中时,颜色不会因字符串或整数等不同类型的元素而改变。

当我运行它时,我得到的输出比我的输入大

#D_ens_g = {"big" dictionary w/ >20k keys and values}

def Simple_Reader(input,output='test.txt'):
    temp = []

    query=open(input,'r').read().split('\r')
    for q in query:
        print D_ens_g[q]

test_2 = '~/Desktop/list.txt'
Simple_Reader(test_2)

我在 test_2 中导入的列表中的每个元素都有一个特定的 ID,它位于字典的键中

【问题讨论】:

  • “大”不是数字。
  • 使用真实数据库? (甚至像 sqlite3 或 couchdb 之类的东西)
  • 首先,你真的需要那本大字典吗?
  • 我不知道该怎么做。如何生成数据库?大到 20k+ 。我用一堆不同的数据文件编译了字典
  • “不编译”是什么意思? 20k+ 什么?字典里有什么?您收到错误消息吗?你能告诉我们错误信息吗? (整个错误信息?)

标签: python dictionary process large-data


【解决方案1】:

你真的需要一本大字典吗?大概您正在从另一个文件中提取数据。你实际上需要用字典做什么?正如 Joran 所说,真正的数据库可能更智能

【讨论】:

  • 这应该是一条评论(我意识到你没有足够的代表发表评论,所以我不会投反对票......但它最终会被投反对票作为答案)
【解决方案2】:

所以我所做的是我用“大”字典创建了一个文本文件,然后我导入 ast 并使用 literal_eval 来读取它,而无需在我的应用程序中编译它

import ast
D_ens_gene = ast.literal_eval(open('/users/opus_magnum/desktop/D_ens_gene.txt','r').read())

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多