2016-06-21 13 views
0

Ich habe ein Problem mit meinem Python-Code. Ich habe eine Plist-Datei.Parse Plist-Datei in Python

Info.plist

<plist> 
    <dict> 
    <key>Apple Car Version</key> 
    <string>1.0</string> 
    <key>Last Backup Date</key> 
    <date/> 
    <key>Product Type</key> 
    <string>iPad2,5</string> 
    <key>Product Version</key> 
    <string>9.3.1</string> 
    </dict> 
</plist> 

Mein Python-Code:

import os 
import plistlib 

def main(): 

    fileName=os.path.expanduser('Info.plist') 

    if os.path.exists(fileName): 

     pl=plistlib.readPlist(fileName) 

     if 'Product Version' in pl: 
     print('The aString value is %s\n' % pl['Apple Car Version']) 

     else: 
     print('There is no Apple Car Version in the plist\n') 

    else: 
     print('%s does not exist, so can\'t be read' % fileName) 

if __name__ == '__main__': 
    main() 

Ok, so schrieb ich einen Code aus, aber ich bin jetzt größere Probleme konfrontiert, fand ich es heraus war nicht mein code aber mein plist Das letzte Backup-Datum im plist verursacht Fehler. Gibt es eine Möglichkeit, wo ich nur die Saiten PARSh kann, nichts anderes wie <date/>

Durch die Art und Weise dieses plist von iTunes gemacht wurde, wenn Ihre

Antwort

0

fragt Die plist-Datei nicht gut xml überhaupt gebildet wird, so dass ich bezweifle, dass es funktionieren wird. Ich glaube, Sie müssen (mindestens) eine Wurzel plist Element und ein dict Wrapper:

<plist> 
    <dict> 
    <key>Apple Car Version</key> 
    <string>1.0</string> 
    </dict> 
</plist> 

Dann werden die Tasten von pl werden die Schlüssel, die Sie tatsächlich in der Datei definieren, so „Apple-Car Version“ in diesem Fall :

print(pl['Apple Car Version']) 
+0

siehe auch plist (5) https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/plist.5.html für weitere Details über das plist-Dateiformat – abeyer

+0

OK Ich habe meine Antwort aktualisiert, ich bekomme einen Syntaxfehler: NameError: Name 'Laden' ist nicht definiert, Muss ich ein anderes Modul importieren? – UserBOBBED

+0

Ok, also habe ich etwas Code geschrieben, aber ich habe jetzt GRÖSSERE Probleme, ich habe herausgefunden, dass es nicht mein Code ist, aber mein PLIST Das letzte Backup-Datum im PLIST verursacht Fehler. Gibt es einen Weg, wo ich die Zeichenfolge nichts anderes als UserBOBBED