2015-11-29 15 views
8

私はjson.dumpsを使用して保存したファイルをインポートしようとつぶやきが含まれていますが座標:json.decoder.JSONDecodeError:期待値:行1列1(CHAR 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これらのファイルを別々のファイルに分けてマップすることができますが、これは一見簡単な問題で、私がこれを止めることになります。私は同様のエラーに対する答えを見てきましたが、これにそれを適用することはできないようです。私が比較的新しいPythonに興味があるので、どんな助けもありがとうございます。

答えて

13

json.loads()は、のJSONエンコード文字列で、ファイル名ではありません。代わりにjson.load()(なしs)を使用して開かれたファイルオブジェクトに渡したい:

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

open()コマンドはjson.load()は、あなたのためにデコードされたPythonオブジェクトを生成するために、から読み取ることができるファイルオブジェクトを生成します。 withステートメントは、完了するとファイルが再び閉じられることを保証します。

代わりに、データを自分で読み取ってjson.loads()に渡すこともできます。

+0

私は最初の提案を使用しようとしていますが、別のエラー 'json.decoder.JSONDecodeError:余分なデータ:行6列3(char 69)' – JTH

+0

@JoshuaHawley:あなたも*ファイル内のJSONが無効です。 'print(repr(open/'/ Users/JoshuaHawley/clean1.txt'、 'rb')。read()))'出力? –

+0

ファイル内のすべてのデータ: b '{\ n \ t "タイプ": "ポイント"、\ n \ t "座標":[-4.62352292、\ n \ t \ t55.44787441 \ n \ t \ n \ t "タイプ": "ポイント"、\ n \ t "座標":[\ n \ t \ t1.09947843、\ n \ t \ t52.19987503 \ n \ t] \ n } – JTH

0

私は、同様のエラーが発生しました: "期待値:行1列1(CHAR 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) 
関連する問題