2016-05-23 8 views
1

jsonオブジェクトを作成しようとしましたが、どこかでミスを犯しました。私はCSVファイルのいくつかのデータを取得しています(中心は文字列、緯度および経度は浮動小数点です)。Pythonでjsonオブジェクトを作成するにはどうすればいいですか?

マイコード:

data = [] 
data.append({ 
    'id': 'id', 
    'is_city': false, 
    'name': center, 
    'county': center, 
    'cluster': i, 
    'cluster2': i, 
    'avaible': true, 
    'is_deleted': false, 
    'coordinates': ('{%s,%s}' %(lat,lng)) 
}) 
json_data = json.dumps(data) 
print json_data 

これはこれで行く:

[{ 
    "county": "County", 
    "is_city": false, 
    "is_deleted": false, 
    "name": "name", 
    "cluster": 99, 
    "cluster2": 99, 
    "id": "id", 
    "coordinates": "{41.0063945,28.9048234}", 
    "avaible": true 
}] 

私が欲しいということ:

{ 
    "id" : "id", 
    "is_city" : false, 
    "name" : "name", 
    "county" : "county", 
    "cluster" : 99, 
    "cluster2" : 99, 
    "coordinates" : [ 
     41.0870185, 
     29.0235126 
    ], 
    "available" : true, 
    "isDeleted" : false, 
} 
+2

最初の手順は、入力ミスを修正することです。次に、「id」を「_id」に変更する方法とその理由を説明してください。次に、辞書を最初にリストに追加せずにダンプします。次に、文字列(文字列の書式設定の結果)がリストになることを期待する理由を教えてください。最後に、私はあなたが注文を心配していることに感心しています。この場合、あなたはPython辞書について読む必要があります。 – timgeb

+0

助けてくれてありがとう。 ご覧のとおり、私は非常にPythonの新機能です。私は彼らの名前だけを書くので、私のCSVファイルから "ID、名前と郡"を取得します。注文はそんなに重要ではありません。座標は私にとって最も重要なことです。それは実際に私が間違いを犯したものです。 – OnbasiSoner

答えて

0

あなたは指定された形式の文字列であることをcoordinatesを定義しています。それをリストとしてエンコードする方法はありません。あなたは別のものをしたいときに一つのことを言っています。

同様に、最上位の辞書をリスト内の唯一の要素にしたくない場合は、そのリストをリストの要素として定義しないでください。

data = { 
    'id': 'id', 
    'is_city': false, 
    'name': name, 
    'county': county, 
    'cluster': i, 
    'cluster2': i, 
    'available': true, 
    'is_deleted': false, 
    'coordinates': [lat, lng] 
} 

私はあなたがcenterを定義した方法がわからない、またはあなたはそれが基本的に同時に値'name'と値'county'を持つことが期待方法。私はこれらの値を保持するための2つの新しい変数を宣言しました。この詳細を処理するためにコードを修正する必要があります。私はまた、Pythonが何らかの形でこれを処理することを期待したところで、 "利用可能"という形容詞を修正しました。

+0

それはずっと助けます。ありがとう:) – OnbasiSoner

0

あなたのpythonできれいな印刷を行うことがPPRINTを使用することができますが、それ文字列ではなくオブジェクトに適用する必要があります。 json_dataはJSONオブジェクトを表す文字列なので、pprintを実行しようとするとオブジェクトとしてロードする必要があります(または、このJSONオブジェクトがすでにサンプルに含まれているのでデータ変数自体を使用する必要があります)例えば)

実行しよう: pprint.pprint(json.loads(json_dataを))

関連する問題