[Tutor] need advice about a dictionary ({})
James Reynolds
eire1130 at gmail.com
Thu Sep 8 18:17:25 CEST 2011
On Thu, Sep 8, 2011 at 10:03 AM, Alan Gauld <alan.gauld at btinternet.com>wrote:
> On 08/09/11 11:58, Richard D. Moores wrote:
>
>> I've succeeded in writing a dictionary ({}) that I can use as a small
>> personal phone book. The dictionary (very shortened and simplified)
>> looks like this in the script;
>>
>> p = {}
>>
>> p['bp1'] = 'xxx'
>> p['bp2'] = 'ooo'
>> p['ch'] = 'zzz'
>> p['me'] = 'aaa'
>> p['mg'] = 'vvv'
>> p['pu1'] = 'bbb'
>> p['pu2'] = 'ccc'
>> p['pw'] = 'kkk'
>>
>>
> You could have done that in one line if you preferred:
>
> > p = {
> 'bp1':'xxx',
> 'bp2':'ooo'
> etc/...
> 'pw':'kkk'
>
> }
>
>
> But I'd like to put the lines of the dictionary in a text file so that
>> I can add key/value items to it by writing to it with another script.
>>
>
> Consider using a shelve (See the shelve module)
> It is basically a file that you can treat as a dictionary...
>
> Try:
>
> >>> import shelve
> >>> help(shelve)
>
> For examples and info.
>
>
> --
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
>
>
> ______________________________**_________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/**mailman/listinfo/tutor<http://mail.python.org/mailman/listinfo/tutor>
>
Another option would be for you to use XML and base it off of a schema.
There's a really nifty tool called generate DS (just google it) that will
turn any valid schema into a python module.
I pasted an example schema that you might use here:
http://pastebin.com/AVgVGpgu
Once you install generateds, just cd to where it is installed and type:
python generateds.py -o pn.py PhoneNumber.xsd
This assumes you named the above schema as PhoneNumber.xsd
That will create a file called pn.py. For some reason it generated a bad
line on line 452, which I just commented out.
I then made a script in just a few lines to make a phonebook:
http://pastebin.com/h4JB0MkZ
This outputs XML that looks like this:
<PhoneBook>
> <Listing>
> <PersonsName>aaa</PersonsName>
> <Number Type="Mobile">
> <Number>1231231234</Number>
> </Number>
> </Listing>
> <Listing>
> <PersonsName>bbb</PersonsName>
> <Number Type="Work">
> <Number>1231231234</Number>
> </Number>
> <Number Type="Home">
> <Number>6789231234</Number>
> </Number>
> </Listing>
> <Listing>
> <PersonsName>ccc</PersonsName>
> <Number Type="Fax">
> <Number>1231231234</Number>
> </Number>
> </Listing>
> <Listing>
> <PersonsName>ddd</PersonsName>
> <Number Type="Home">
> <Number>1231231234</Number>
> </Number>
> </Listing>
> </PhoneBook>
The advantage is, you can immediately grab the generated xml and create
python instances using the build() method for further editing. You would of
course need to create a schema that fits your needs. Mine was just a quick
and dirty example of what you could do.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110908/074d1078/attachment.html>
More information about the Tutor
mailing list