簡體   English   中英

如何在python上創建json對象?

[英]How can i create the json object on python?

我試圖創建一個json對象,但我在某處犯了一個錯誤。 我在CSV文件上獲得了一些數據(中心是字符串,lat和lng是浮點數)。

我的代碼:

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, 
}

您可以使用pprint在python上進行漂亮的打印,但它應該應用於對象而不是字符串。 在您的情況下,json_data是一個表示JSON對象的字符串,因此您需要在嘗試pprint時將其加載回對象(或者使用數據變量本身,因為它在您的示例中已包含此JSON對象)

例如嘗試運行:pprint.pprint(json.loads(json_data))

您將coordinates定義為指定格式的字符串。 json無法將其編碼為列表; 當你想要另一個時,你會說一件事。

同樣,如果您不希望頂級字典成為列表中的唯一元素,請不要將其定義為列表中的元素。

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'基本上是同一時間。 我聲明了兩個新變量來保存這些值; 您需要調整代碼以處理此細節。 我還修改了“可用”中的拼寫錯誤,顯然你希望Python以某種方式處理這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM