का उपयोग कर मल्टीलाइन JSON फ़ाइल को पार्सिंग जारी करना मैं पाइथन 2.7 में json
लाइब्रेरी का उपयोग कर JSON मल्टीलाइन फ़ाइल को पार्स करने का प्रयास कर रहा हूं। एक सरलीकृत नमूना फ़ाइल नीचे दिया गया है के रूप में इसपाइथन
{
"observations": {
"notice": [
{
"copyright": "Copyright Commonwealth of Australia 2015, Bureau of Meteorology. For more information see: http://www.bom.gov.au/other/copyright.shtml http://www.bom.gov.au/other/disclaimer.shtml",
"copyright_url": "http://www.bom.gov.au/other/copyright.shtml",
"disclaimer_url": "http://www.bom.gov.au/other/disclaimer.shtml",
"feedback_url": "http://www.bom.gov.au/other/feedback"
}
]
}
}
मेरे कोड है:
import json
with open('test.json', 'r') as jsonFile:
for jf in jsonFile:
jf = jf.replace('\n', '')
jf = jf.strip()
weatherData = json.loads(jf)
print weatherData
फिर भी, मैं एक त्रुटि के रूप में नीचे दिखाया गया है:
Traceback (most recent call last):
File "test.py", line 8, in <module>
weatherData = json.loads(jf)
File "/home/usr/anaconda2/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/home/usr/anaconda2/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/home/usr/anaconda2/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting object: line 1 column 1 (char 0)
बस कुछ परीक्षण करना , मैंने कोड को संशोधित किया है कि नई लाइनों को हटाने और अग्रणी और पिछली सफेद जगहों को दूर करने के बाद, मैं सामग्री को दूसरी फ़ाइल में लिखता हूं (json
एक्सटेंशन के साथ)। हैरानी की बात है, जब मैंने बाद की फाइल को वापस पढ़ा, मुझे कोई त्रुटि नहीं मिली और पार्सिंग सफल है।
{u'observations': {u'notice': [{u'copyright_url': u'http://www.bom.gov.au/other/copyright.shtml', u'disclaimer_url': u'http://www.bom.gov.au/other/disclaimer.shtml', u'copyright': u'Copyright Commonwealth of Australia 2015, Bureau of Meteorology. For more information see: http://www.bom.gov.au/other/copyright.shtml http://www.bom.gov.au/other/disclaimer.shtml', u'feedback_url': u'http://www.bom.gov.au/other/feedback'}]}}
किसी भी विचार क्या हो रहा हो सकता है जब नई लाइनों और सफेद रिक्त स्थान json
पुस्तकालय उपयोग करने से पहले हटा दिए जाते हैं:
import json
filewrite = open('out.json', 'w+')
with open('test.json', 'r') as jsonFile:
for jf in jsonFile:
jf = jf.replace('\n', '')
jf = jf.strip()
filewrite.write(jf)
filewrite.close()
with open('out.json', 'r') as newJsonFile:
for line in newJsonFile:
weatherData = json.loads(line)
print weatherData
उत्पादन इस प्रकार है: संशोधित कोड इस प्रकार है?
धन्यवाद @ ओकेज़ी। 'लोड' के माध्यम से पूरी फाइल लोड हो रही चाल है। – hypersonics