Newbie: plist & control characters?
BobAalsma
bob.aalsma at aalsmacons.nl
Tue Sep 21 04:56:27 EDT 2010
I'm trying to modify a plist file. The modification works properly,
but I'm having difficulties in finding the proper way to restore.
The file contains HTML strings like "$#226;" and either this gets
replaced by "รข" (which I don't want) but the programme completes or
the program fails when I try to use the data wrapper.
I must be doing something wrong, but can't find what (and this
includes Google searches). Please help.
Failing text:
def omkattenAgents(AANGRIJPINGSPUNT, KLANTNAAM_OUT, KLANTNAAM_IN,
ZOEKSET1_OUT, ZOEKSET1_IN, ZOEKSET2_OUT, ZOEKSET2_IN):
<other programme text>
tussentekst =
plistlib.Data(plistlib.readPlist(os.path.join(root,bestandsnaam)))
tussenblok = tussentekst.data
ding = tussenblok['RepresentedObject']
tekststring = ding.get('Name')
tekststring_0 = tekststring.replace(KLANTNAAM_OUT,KLANTNAAM_IN)
tekststring_1 = tekststring_0.replace(ZOEKSET1_OUT,ZOEKSET1_IN)
tekststring_2 = tekststring_1.replace(ZOEKSET2_OUT,ZOEKSET2_IN)
tekststring_3 =
tekststring_2.replace(ZOEKSET1_OUT_LOWER,ZOEKSET1_IN_LOWER)
tekststring_4 =
tekststring_3.replace(ZOEKSET2_OUT_LOWER,ZOEKSET2_IN_LOWER)
ding['Name'] = tekststring_4
tussenblok['RepresentedObject'] = ding
tussentekst.data = tussenblok
plistlib.Data(plistlib.writePlist(tussentekst,
os.path.join(root,bestandsnaam)))
Text in Terminal:
File "LeadDevice_klant_nieuw_aanmaken.py", line 66, in <module>
omkattenAgents(AANGRIJPINGSPUNT, KLANTNAAM_OUT, KLANTNAAM_IN,
ZOEKSET1_OUT, ZOEKSET1_IN, ZOEKSET2_OUT, ZOEKSET2_IN)
File "/Volumes/LeadDevice-2/LeadDevice/Programmatuur/Python/
LeadDeviceProductie/LeadDevice_klant_nieuw_naamcorrectie_intern.py",
line 162, in omkattenAgents
plistlib.Data(plistlib.writePlist(tussentekst,
os.path.join(root,bestandsnaam)))
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/plistlib.py", line 94, in writePlist
writer.writeValue(rootObject)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/plistlib.py", line 254, in writeValue
self.writeData(value)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/plistlib.py", line 267, in writeData
for line in data.asBase64(maxlinelength).split("\n"):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/plistlib.py", line 379, in asBase64
return _encodeBase64(self.data, maxlinelength)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/plistlib.py", line 361, in _encodeBase64
chunk = s[i : i + maxbinsize]
TypeError: unhashable type
The difference between failure and completion with replacing HTML is
the statement
tussentekst.data = tussenblok (failure)
tussentekst = tussenblok (completion with replacing)
Regards,
Bob
More information about the Python-list
mailing list