2015-11-29 8 views
8

मैं जो json.dumps का उपयोग कर बचा लिया गया था एक फ़ाइल आयात करने की कोशिश कर रहा हूँ और ट्वीट शामिल निर्देशांक:json.decoder.JSONDecodeError: उम्मीद मूल्य: लाइन 1 स्तंभ 1 (चार 0)

{ 
    "type": "Point", 
    "coordinates": [ 
     -4.62352292, 
     55.44787441 
    ] 
} 

मेरे कोड है:

>>> import json 
>>> data = json.loads('/Users/JoshuaHawley/clean1.txt') 

लेकिन हर बार मैं त्रुटि मिलती है:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

मैं सभी निर्देशांक और Savi निकालने खत्म करना चाहते हैं उन्हें अलग से अलग फ़ाइल में अलग करें ताकि उन्हें मैप किया जा सके, लेकिन यह प्रतीत होता है कि यह सरल समस्या मुझे ऐसा करने से रोक रही है। मैंने इसी तरह की त्रुटियों के जवाबों को देखा है लेकिन ऐसा लगता है कि इसे लागू करने में सक्षम नहीं है। किसी भी मदद की सराहना की जाएगी क्योंकि मैं पाइथन के लिए अपेक्षाकृत नया हूं।

उत्तर

13

json.loads()JSON एन्कोडेड स्ट्रिंग लेता है, फ़ाइल नाम नहीं। इसके बजाय आप json.load() (कोई s) का उपयोग करने और एक खुले फ़ाइल वस्तु में पारित करना चाहते हैं:

with open('/Users/JoshuaHawley/clean1.txt') as jsonfile: 
    data = json.load(jsonfile) 

open() आदेश एक फ़ाइल उद्देश्य यह है कि json.load() तो आप के लिए डीकोड अजगर वस्तु के उत्पादन के लिए, से पढ़ सकते हैं पैदा करता है। with कथन यह सुनिश्चित करता है कि फ़ाइल पूर्ण होने पर फिर से बंद हो जाए।

विकल्प डेटा को स्वयं पढ़ना है और फिर इसे json.loads() में पास करना है।

+0

मैं पहले सुझाव का उपयोग करने की कोशिश कर रहा हूं लेकिन फिर यह एक अलग त्रुटि 'json.decoder.JSONDecodeError: अतिरिक्त डेटा: लाइन 6 कॉलम 3 (चार 69)' – JTH

+0

@JoshuaHawley: तो आप * भी * है फ़ाइल में अवैध JSON। 'प्रिंट (repr (खुला ('/ उपयोगकर्ता/JoshuaHawley/clean1.txt', 'आरबी') क्या पढ़ता है। (पढ़ें)) 'आउटपुट? –

+0

फ़ाइल में सभी डेटा, यानी: बी '{\ n \ t "प्रकार": "प्वाइंट", \ n \ t "निर्देशांक": [-4.62352292, \ n \ t \ t55.44787441 \ n \ t ] \ n} {\ n \ t "टाइप करें": "प्वाइंट", \ n \ t "निर्देशांक": [\ n \ t \ t1.09947843, \ n \ t \ t52.19987503 \ n \ t] \ n } – JTH

0

मैं इसी तरह की त्रुटि थी: "उम्मीद मूल्य: लाइन 1 स्तंभ 1 (चार 0)"

यह मुझे जोड़ने के लिए "myfile.seek (0)", 0 चरित्र पॉइंटर को चलाने में मदद की

with open(storage_path, 'r') as myfile: 
if len(myfile.readlines()) != 0: 
    myfile.seek(0) 
    Bank_0 = json.load(myfile) 
संबंधित मुद्दे