पर आधारित XML फ़ाइल टेक्स्ट संपादित करें मेरे पास एक XML फ़ाइल है (उदा। Jerry.xml) जिसमें नीचे दिया गया कुछ डेटा शामिल है।पथ
<data>
<country name="Peru">
<rank updated="yes">2</rank>
<language>english</language>
<currency>1.21$/kg</currency>
<gdppc month="06">141100</gdppc>
<gdpnp month="10">2.304e+0150</gdpnp>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<language>english</language>
<currency>4.1$/kg</currency>
<gdppc month="05">59900</gdppc>
<gdpnp month="08">1.9e-015</gdpnp>
<neighbor name="Malaysia" direction="N"/>
</country>
मैंने नीचे दिए गए कोड का उपयोग करके ऊपर दिए गए एक्सएमएल से कुछ चयनित ग्रंथों के पूर्ण पथ निकाले। कारण post में दिए गए हैं।
def extractNumbers(path, node):
nums = []
if 'month' in node.attrib:
if node.attrib['month'] in ['05', '06']:
return nums
path += '/' + node.tag
if 'name' in node.keys():
path += '=' + node.attrib['name']
elif 'year' in node.keys():
path += ' ' + 'month' + '=' + node.attrib['month']
try:
num = float(node.text)
nums.append((path, num))
except (ValueError, TypeError):
pass
for e in list(node):
nums.extend(extractNumbers(path, e))
return nums
tree = ET.parse('jerry.xml')
nums = extractNumbers('', tree.getroot())
print len(nums)
print nums
यह मैं तत्वों मैं नीचे के रूप में (जैसे hrong.csv) सीएसवी के colomn 1 में दिखाया गया बदलने की जरूरत के स्थान देता है।
Path Text1 Text2 Text3 Text4 Text5
'/data/country name=singapore/gdpnp month=08'; 5.2e-015; 2e-05; 8e-06; 9e-04; 0.4e-05;
'/data/country name=peru/gdppc month=06'; 0.04; 0.02; 0.15; 3.24; 0.98;
मैं ऊपर hrong.csv के स्तंभ 2 में उन लोगों के, स्तंभ 1 में तत्वों के स्थान पर आधारित द्वारा मूल एक्सएमएल फ़ाइल (jerry.xml) के तत्वों के पाठ को प्रतिस्थापित करना चाहते हैं।
मैं अजगर के लिए नौसिखिया हूं और महसूस करता हूं कि मैं सबसे अच्छा दृष्टिकोण नहीं उपयोग कर रहा हूं। दिशा निर्देश के संबंध में मैं किसी भी मदद की सराहना करता हूं। मुझे मूल रूप से केवल कुछ चयनित ग्रंथों को किसी XML फ़ाइल के नोड्स को पार्स करने की आवश्यकता है, चयनित टेक्स्ट नोड्स को संशोधित करें और प्रत्येक फ़ाइल को सहेजें।
धन्यवाद
"केवल कुछ चयनित टेक्स्ट नोड्स को पार्स करने की आवश्यकता है" - कौन सा? आप उन्हें कैसे चुनते हैं? – snapshoe
@ स्नैपशो मुझे केवल उन नोड्स पर विचार करने की आवश्यकता है जिनके ग्रंथ फ्लोट-सक्षम हैं। अधिक स्पष्टीकरण [लिंक] के लिए कृपया पहले पोस्ट देखें (http: // stackoverflow।कॉम/प्रश्न/28568823/पार्स-एंड-गिनती-न्यूमेरिक-केवल-एक्सएमएल-टेक्स्ट-इन-ई -00-या -01) – Mia
लेकिन ऐसा लगता है कि आप केवल महीनों '05' और '06' का चयन कर रहे हैं? क्या वे एकमात्र महीने हैं? अन्य महीनों जैसे '08' और '10' लागू नहीं होते ??? – snapshoe