2017-10-07 11 views
0

ここでは、Pythonの初心者、私は本当に私が印刷したいテキストファイルに苦しんでいます:Pythonでは、角括弧と引用符を含むテキストファイルをどのように記述しますか?

{"geometry": {"type": "Point", "coordinates": 
[127.03790738341824,-21.727244054924235]}, "type": "Feature", "properties": {}} 

複数のブラケットを持っているという事実は私を混同し、それはこれを試した後Syntax Errorをスロー:

def test(): 
    f = open('helloworld.txt','w') 
    lat_test = vehicle.location.global_relative_frame.lat 
    lon_test = vehicle.location.global_relative_frame.lon 
    f.write("{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}" % (str(lat_test), str(lat_test))) 
    f.close() 

として、あなたが見ることができる、私は緯度と経度のための私自身の変数を持っていますが、Pythonは構文エラーを投げている:

File "hello.py", line 90 
f.write("{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": 
"Feature"" % (str(lat_test), str(lat_test))) 
       ^
SyntaxError: invalid syntax 

感謝あらゆる助けのために事前にたくさんのことがあります。

+0

テキストファイルは[JSON](http://www.json.org/)形式ですか? –

+1

https://stackoverflow.com/a/12309296/5538805 – MrPyCharm

+0

ファイルの実際の形式はgeojsonになります。私はちょうどtxtからjsに拡張を変更すると考えて – Diamondx

答えて

1

f.write()に渡す文字列が正しくフォーマットされていません。試してみてください:

f.write('{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}' % (lat_test, lon_test)) 

は、これは引用符の最も外側のセットとして単一引用符を使用し、二重引用符を埋め込むことができます。また、str()が緯度と経度の周りにある必要はありません。%sstr()を実行します。あなたは2番目のものも正しくありませんでした(lat_testを2回渡しました)。そして、上記の例で修正しました。あなたがここでやっていることはJSONを書いている場合、JSON一つにPythonの辞書を変えるのを助けるためにPythonのJSONモジュールを使用することが有用である可能性があり

import json 

lat_test = vehicle.location.global_relative_frame.lat 
lon_test = vehicle.location.global_relative_frame.lon 

d = { 
    'Geometry': { 
     'type': 'Point', 
     'coordinates': [lat_test, lon_test], 
     'type': 'Feature', 
     'properties': {}, 
    }, 
} 

with open('helloworld.json', 'w') as f: 
    json.dump(d, f) 
+0

これは私のために働いてくれてありがとう! – Diamondx

0

また、トリプル引用符を使用することができます。

f.write("""{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}""" % (str(lat_test), str(lat_test))) 

しかし、この特定のケースでは、jsonパッケージがジョブを実行します。

関連する問題