如何在python中保存deque数据

时间:2016-02-03 16:24:48

标签: json python-3.x pickle deque

我有一些用Python编写的代码,其中包含以下代码:

<table class="upcomingcourses" border="1" style="width: 701px">
<thead>
   <tr>
    <th width="45%">Course</th>
    <th width="15%">Location(s)</th>
    <th width="5%">Credits</th>
    <th width="35%" class="sortable" data-order="ascending" onclick="sortTable(this);">Date(s)</th>
   </tr>
</thead>
  <tbody>

 <tr>
    <td class="centerTD">
        <a href="/courses/business-studies.html">Business Studies</a>
    </td>
    <td class="locations">
        <br/>
        <p>B7</p>
        <p>G6</p>
        <br/>
    </td>
    <td class="centerTD">
        <p>30</p>
    </td>
    <td class="date 20160204">
        <p>4 Feb 2016</p>
    </td>
</tr>

<tr>
    <td class="centerTD">
        <a href="/courses/management-studies.html">Management Studies</a>
    </td>
    <td class="locations">
        <br/>
        <p>D8</p>
        <p>F2</p>
        <br/>
    </td>
    <td class="centerTD">
        <p>15</p>
    </td>
    <td class="date 20160101">
        <br/>
        <p>e-Learning: Jan-Feb 2016</p>
        <p>8-12 Feb 2016</p>
        <p>Presentation: 9 Mar 2016</p>
        <br/>
    </td>
</tr>

<tr>
    <td class="centerTD">
        <a href="/courses/leisure-tourism.html">Leisure and Tourism</a>
    </td>
    <td class="locations">
        <br/>
        <p>C5</p>
        <br/>
    </td>
    <td class="centerTD">
        <p>15</p>
        <p>20</p>
    </td>
    <td class="date 99999999">
        <p>TBC</p>
    </td>
</tr>

<tr>
    <td class="centerTD">
        <a href="/courses/mechanical-electrical-eng.html">Mechanical and Electrical Engineering</a>
    </td>
    <td class="locations">
        <br/>
        <p>A3 Workshop</p>
        <br/>
    </td>
    <td class="centerTD">
        <p>15</p>
    </td>
    <td class="date 20160203">
        <br/>
        <p>3 Feb 2016</p>
        <p>18 Feb 2016</p>
        <p>24 Feb 2016</p>
        <br/>
    </td>
</tr>
  </tbody>
</table>  

我想知道你是否可以以某种方式将其保存到Python中的某种数据库(在Python 3.x中),以便我可以处理先前保存到数据库的数据,以便将分数附加到现有用户并处理要在程序中打印所有数据的数据。

我做了一些研究,发现了Pickle和JSon数据库,但我的Python编程知识不是很广泛,我不知道如何在我的代码中实现它们以及如何打包和解包这行代码。

任何人都可以帮助我吗? (任何帮助非常感谢)

1 个答案:

答案 0 :(得分:0)

您要寻找的工具是shelve模块。它为带有腌制Python对象的持久数据存储提供了类似于字典的接口。

这是一个双端队列的示例,其中的数据在会话之间被记住:

====== RESTART: Shell ======
>>> import shelve
>>> import collections
>>> user_last3 = shelve.open('scores.pickle', writeback=True)
>>> user_last3['mark'] = collections.deque([86, 81, 92], maxlen=3)
>>> user_last3['jane'] = collections.deque([87, 90, 91], maxlen=3)
>>> dict(user_last3)
{'jane': deque([87, 90, 91], maxlen=3), 'mark': deque([86, 81, 92], maxlen=3)}
>>> user_last3.close()

====== RESTART: Shell ======
>>> import shelve
>>> user_last3 = shelve.open('scores.pickle', writeback=True)
>>> user_last3['mark'].append(99)
>>> user_last3['jane'].append(98)
>>> dict(user_last3)
{'jane': deque([90, 91, 98], maxlen=3), 'mark': deque([81, 92, 99], maxlen=3)}
>>> user_last3.close()