Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!goblin3!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed3a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:error': 0.03; 'else:': 0.03; 'method.': 0.07; 'string': 0.09; 'none)': 0.09; 'none):': 0.09; 'parsing': 0.09; 'skip:f 70': 0.09; 'subject:parsing': 0.09; 'try:': 0.09; 'variables.': 0.09; 'python': 0.11; 'def': 0.12; '"r")': 0.16; 'dict': 0.16; 'list):': 0.16; 'properties,': 0.16; 'typeerror:': 0.16; 'x86_64': 0.16; 'subject:python': 0.16; 'trying': 0.19; 'skip:f 30': 0.19; 'later': 0.20; 'written': 0.21; 'print': 0.22; 'error': 0.23; 'expanded': 0.24; 'skip:i 40': 0.24; '>': 0.26; 'skip:_ 20': 0.27; 'values': 0.27; 'function': 0.29; 'properties': 0.29; 'xml': 0.29; 'characters': 0.30; 'message-id:@mail.gmail.com': 0.30; 'program,': 0.31; 'getting': 0.31; "skip:' 10": 0.31; 'doc': 0.31; 'skip:i 60': 0.31; 'file': 0.32; 'linux': 0.33; 'skip:d 20': 0.34; 'subject:with': 0.35; 'except': 0.35; 'skip:s 30': 0.35; 'skip:u 20': 0.35; 'convert': 0.35; 'received:google.com': 0.35; 'version': 0.36; 'skip:f 40': 0.36; 'doing': 0.36; 'area': 0.37; 'being': 0.38; 'server': 0.38; 'skip:& 10': 0.38; 'hat': 0.38; 'handle': 0.38; 'to:addr:python-list': 0.38; 'skip:& 20': 0.39; 'to:addr:python.org': 0.39; 'called': 0.40; 'skip:x 10': 0.40; 'skip:\xc2 10': 0.60; 'tag': 0.61; 'no.': 0.61; 'back': 0.62; 'skip:n 10': 0.64; 'skip:f 50': 0.65; 'here': 0.66; '8bit%:100': 0.72; 'skip:$ 10': 0.81; 'dict,': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=D7XeHoy+WhC0H/1Xo4G0sYnqHWId7cTxeMRdykKKF9s=; b=HSJ5L0gKz+6p2DfxxbQ0yQRR73Kb5JbwHpGUdQ1UFmliyIoWaaaExc7WZhm1JKNk3/ 0GOs03GgkIA1MxwjmmIsyElU9havmVZKVI2qL9AusTN0RQf7FwSXJSnUbXVq3+BRDWex MaJrqugFxtNV+XjkwvQWzu9ZqeR96x8S/XRKULTYV+LPmj/yin75Z21p/EkHPaiR6M26 /9gkb08ZweZaxo1PKJzKYODzGfbsveBFOBDiZkniIwUYxl1TRYaYdTx21hxK0FW+Umw4 ZUJuzbtOCxv48HwUgLTkpNFEaCOEqrPKV/hGKbOHMgwSH8txKLbmnzlhTY9XBPYLR3oj mXyw== MIME-Version: 1.0 X-Received: by 10.202.107.195 with SMTP id g186mr13831777oic.67.1423553404501; Mon, 09 Feb 2015 23:30:04 -0800 (PST) Date: Tue, 10 Feb 2015 13:00:04 +0530 Subject: Varable parsing error with python From: OmPs To: python mail list Content-Type: multipart/alternative; boundary=001a1141bdc6fe83b8050eb6daa2 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 222 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1423553413 news.xs4all.nl 2904 [2001:888:2000:d::a6]:46359 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:85431 --001a1141bdc6fe83b8050eb6daa2 Content-Type: text/plain; charset=UTF-8 In an XML file which contain a tag and then these tags contain properties, which later are being called in anoter tag where these properties are expanded as variables. For eg. 1.0 1.2 Red Hat Enterprise Linux Server 5 X86_64 testsapppath my testapp area ${APPVERSION} So now i have written a python program whcih is parsing this program, so what i am doing in here is reading this xml file with open(filename, "r") as f: orig_xml = f.read() #unescape html characters like %20 xmlstring = urllib.unquote(orig_xml) #convert xml to dict doc = xmltodict.parse(xmlstring) #replace property values in xml string via instancename s = Template(xmlstring) #iterate over instances/ match the one we need for i in doc.get("application").get("instance", None): #when found # s/r properties in xml and then convert it back to dict try: if i.get("@name", None) == instancename: try: instance_property = dict(i.get("property")) final_string = s.safe_substitute(instance_property) final_dict = xmltodict.parse(final_string) except TypeError: final_dict = doc # Handle strings in case of dict, strings do not have get method. except AttributeError: final_dict = doc and when i am trying to get the version no. using a function for getting the package version def _getPackgeVersion(xmlfile, p): package = str(p) if isinstance(fpmdict["application"]["package"], list): for i in fpmdict["application"]["package"]: if i["@name"] == p: _pkgVersion = i["version"] else: _pkgversion = fpmdict["application"]["package"]["version"] return _pkgVersion pkgVersion = _getPackgeVersion(final_doc, testpackage) print type(pkgVersion) I am getting the below error --001a1141bdc6fe83b8050eb6daa2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PHAgZGlyPSJsdHIiPjxicj4NCkluIGFuIFhNTCBmaWxlIHdoaWNoIGNvbnRhaW4gYSB0YWcgYW5k IHRoZW4gdGhlc2UgdGFncyBjb250YWluIHByb3BlcnRpZXMsIHdoaWNoIGxhdGVyIGFyZSBiZWlu ZyBjYWxsZWQgaW4gYW5vdGVyIHRhZyB3aGVyZSB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBleHBhbmRl ZCBhcyB2YXJpYWJsZXMuPC9wPg0KPHAgZGlyPSJsdHIiPkZvciBlZy48L3A+DQo8cCBkaXI9Imx0 ciI+wqA8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgPC9wPg0KPHAgZGlyPSJsdHIiPsKgPC9wPg0K PHAgZGlyPSJsdHIiPsKgwqDCoCAmbHQ7aW5zdGFuY2UgbmFtZT0mIzM5O2luc3RhbmNlbmFtZSYj Mzk7IHVzZXI9JiMzOTt0ZXN0JiMzOTsgZ3JvdXA9JiMzOTt0ZXN0JiMzOTsgZnVsbG5hbWU9JiMz OTt0ZXN0JTIwLSUyMGRldiUyMGFwcCYjMzk7ICZndDs8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKg wqDCoMKgwqDCoMKgICZsdDtwcm9wZXJ0eSZndDs8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICZsdDtBUFBWRVJTSU9OJmd0OzEuMCZsdDsvQVBQVkVSU0lPTiZndDs8 L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqDCoMKgICZsdDsvcHJvcGVydHkmZ3Q7PC9w Pg0KPHAgZGlyPSJsdHIiPsKgwqDCoCAmbHQ7L2luc3RhbmNlJmd0OzwvcD4NCjxwIGRpcj0ibHRy Ij7CoDwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqAgJmx0O2NvbXBvbmVudCBuYW1lPSYjMzk7dGVz dGFwcENvbXAmIzM5OyB1c2VyPSYjMzk7dGVzdCYjMzk7IGdyb3VwPSYjMzk7dGVzdCYjMzk7Jmd0 OzwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqDCoMKgwqDCoMKgwqAmbHQ7dmVyc2lvbiZndDsxLjIm bHQ7L3ZlcnNpb24mZ3Q7PC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoMKgwqDCoMKgwqDCoCAmbHQ7 b3MmZ3Q7UmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IFNlcnZlciA1IFg4Nl82NCZsdDsvb3MmZ3Q7 PC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoMKgwqDCoMKgwqDCoCAmbHQ7cGFja2FnZSZndDt0ZXN0 c2FwcHBhdGgmbHQ7L3BhY2thZ2UmZ3Q7PC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoCAmbHQ7L2Nv bXBvbmVudCZndDs8L3A+DQo8cCBkaXI9Imx0ciI+wqA8L3A+DQo8cCBkaXI9Imx0ciI+wqA8L3A+ DQo8cCBkaXI9Imx0ciI+wqDCoMKgICZsdDtwYWNrYWdlIG5hbWU9JiMzOTt0ZXN0YXBwcGF0aCYj Mzk7Jmd0OzwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqDCoMKgwqDCoMKgICZsdDtkZXNjcmlwdGlv biZndDtteSB0ZXN0YXBwIGFyZWEmbHQ7L2Rlc2NyaXB0aW9uJmd0OzwvcD4NCjxwIGRpcj0ibHRy Ij7CoMKgwqDCoMKgwqDCoMKgICZsdDt2ZXJzaW9uJmd0OyR7QVBQVkVSU0lPTn0mbHQ7L3ZlcnNp b24mZ3Q7PC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoCAmbHQ7L3BhY2thZ2UmZ3Q7PC9wPg0KPHAg ZGlyPSJsdHIiPsKgPC9wPg0KPHAgZGlyPSJsdHIiPlNvIG5vdyBpIGhhdmUgd3JpdHRlbiBhIHB5 dGhvbiBwcm9ncmFtIHdoY2loIGlzIHBhcnNpbmcgdGhpcyBwcm9ncmFtLCBzbyB3aGF0IGkgYW0g ZG9pbmcgaW4gaGVyZSBpcyByZWFkaW5nIHRoaXMgeG1sIGZpbGU8L3A+DQo8cCBkaXI9Imx0ciI+ wqA8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgIHdpdGggb3BlbihmaWxlbmFtZSwgJnF1b3Q7ciZx dW90OykgYXMgZjo8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgIG9yaWdfeG1sID0gZi5yZWFkKCk8 L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgICN1bmVzY2FwZSBodG1sIGNoYXJhY3RlcnMgbGlrZSAl MjA8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgIHhtbHN0cmluZyA9IHVybGxpYi51bnF1b3RlKG9y aWdfeG1sKTwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqAgI2NvbnZlcnQgeG1sIHRvIGRpY3Q8L3A+ DQo8cCBkaXI9Imx0ciI+wqDCoMKgIGRvYyA9IHhtbHRvZGljdC5wYXJzZSh4bWxzdHJpbmcpPC9w Pg0KPHAgZGlyPSJsdHIiPsKgwqDCoCAjcmVwbGFjZSBwcm9wZXJ0eSB2YWx1ZXMgaW4geG1sIHN0 cmluZyB2aWEgaW5zdGFuY2VuYW1lPC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoCBzID0gVGVtcGxh dGUoeG1sc3RyaW5nKTwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqAgI2l0ZXJhdGUgb3ZlciBpbnN0 YW5jZXMvIG1hdGNoIHRoZSBvbmUgd2UgbmVlZDwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqAgZm9y IGkgaW4gZG9jLmdldCgmcXVvdDthcHBsaWNhdGlvbiZxdW90OykuZ2V0KCZxdW90O2luc3RhbmNl JnF1b3Q7LCBOb25lKTo8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqAgI3doZW4gZm91 bmQ8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqAgIyBzL3IgcHJvcGVydGllcyBpbiB4 bWwgYW5kIHRoZW4gY29udmVydCBpdCBiYWNrIHRvIGRpY3Q8L3A+DQo8cCBkaXI9Imx0ciI+wqDC oMKgwqDCoMKgwqAgdHJ5OjwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmIGkuZ2V0KCZxdW90O0BuYW1lJnF1b3Q7LCBOb25lKSA9PSBpbnN0YW5jZW5hbWU6PC9wPg0K PHAgZGlyPSJsdHIiPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnk6PC9wPg0KPHAg ZGlyPSJsdHIiPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGluc3RhbmNl X3Byb3BlcnR5ID0gZGljdChpLmdldCgmcXVvdDtwcm9wZXJ0eSZxdW90OykpPC9wPg0KPHAgZGly PSJsdHIiPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbmFsX3N0cmlu ZyA9IHMuc2FmZV9zdWJzdGl0dXRlKGluc3RhbmNlX3Byb3BlcnR5KTwvcD4NCjxwIGRpcj0ibHRy Ij7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmaW5hbF9kaWN0ID0geG1s dG9kaWN0LnBhcnNlKGZpbmFsX3N0cmluZyk8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGV4Y2VwdCBUeXBlRXJyb3I6PC9wPg0KPHAgZGlyPSJsdHIiPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbmFsX2RpY3QgPSBkb2M8L3A+ DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqAgIyBIYW5kbGUgc3RyaW5ncyBpbiBjYXNlIG9m IGRpY3QsIHN0cmluZ3MgZG8gbm90IGhhdmUgZ2V0IG1ldGhvZC48L3A+DQo8cCBkaXI9Imx0ciI+ wqDCoMKgwqDCoMKgwqAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOjwvcD4NCjxwIGRpcj0ibHRyIj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbmFsX2RpY3QgPSBkb2M8L3A+DQo8cCBkaXI9Imx0ciI+ wqA8L3A+DQo8cCBkaXI9Imx0ciI+YW5kIHdoZW4gaSBhbSB0cnlpbmcgdG8gZ2V0IHRoZSB2ZXJz aW9uIG5vLiB1c2luZyBhIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSBwYWNrYWdlIHZlcnNpb248 L3A+DQo8cCBkaXI9Imx0ciI+wqA8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgIGRlZiBfZ2V0UGFj a2dlVmVyc2lvbih4bWxmaWxlLCBwKTo8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqAg cGFja2FnZSA9IHN0cihwKTwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqDCoMKgwqDCoCBpZiBpc2lu c3RhbmNlKGZwbWRpY3RbJnF1b3Q7YXBwbGljYXRpb24mcXVvdDtdWyZxdW90O3BhY2thZ2UmcXVv dDtdLCBsaXN0KTo8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmb3Ig aSBpbiBmcG1kaWN0WyZxdW90O2FwcGxpY2F0aW9uJnF1b3Q7XVsmcXVvdDtwYWNrYWdlJnF1b3Q7 XTo8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIGlb JnF1b3Q7QG5hbWUmcXVvdDtdID09IHA6PC9wPg0KPHAgZGlyPSJsdHIiPsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9wa2dWZXJzaW9uID0gaVsmcXVvdDt2ZXJzaW9uJnF1 b3Q7XTwvcD4NCjxwIGRpcj0ibHRyIj7CoMKgwqDCoMKgwqDCoCBlbHNlOjwvcD4NCjxwIGRpcj0i bHRyIj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9wa2d2ZXJzaW9uID0gZnBtZGljdFsmcXVvdDth cHBsaWNhdGlvbiZxdW90O11bJnF1b3Q7cGFja2FnZSZxdW90O11bJnF1b3Q7dmVyc2lvbiZxdW90 O108L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gX3BrZ1Zl cnNpb248L3A+DQo8cCBkaXI9Imx0ciI+wqA8L3A+DQo8cCBkaXI9Imx0ciI+wqDCoMKgIHBrZ1Zl cnNpb24gPSBfZ2V0UGFja2dlVmVyc2lvbihmaW5hbF9kb2MsIHRlc3RwYWNrYWdlKTwvcD4NCjxw IGRpcj0ibHRyIj7CoMKgwqAgcHJpbnQgdHlwZShwa2dWZXJzaW9uKTwvcD4NCjxwIGRpcj0ibHRy Ij7CoDwvcD4NCjxwIGRpcj0ibHRyIj5JIGFtIGdldHRpbmcgdGhlIGJlbG93IGVycm9yPC9wPg0K PHAgZGlyPSJsdHIiPiZsdDt0eXBlICYjMzk7Tm9uZVR5cGUmIzM5OyZndDs8L3A+DQo= --001a1141bdc6fe83b8050eb6daa2--