我试图创建一个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,
}
答案 0 :(得分:0)
你可以使用pprint在python上进行漂亮的打印,但它应该应用于对象而不是字符串。 在您的情况下,json_data是一个表示JSON对象的字符串,因此您需要在尝试pprint时将其加载回对象(或者使用数据变量本身,因为它在您的示例中已包含此JSON对象)
例如尝试运行: pprint.pprint(json.loads(json_data))
答案 1 :(得分:0)
您将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'
。我声明了两个新变量来保存这些值;您需要调整代码以处理此细节。我还修复了#34;可用"显然你希望Python以某种方式处理这个问题。