经过网查得出,使用json中的dumps方式能够解决问题。通常在须要输出得上一步使用,这样能够便于其余错误得产生html
import jsonjson
# result = json.dumps(b, encoding='UTF-8', ensure_ascii=False)
# list1 = ["陈","湖北"]
# result = json.dumps(list1, encoding='UTF-8', ensure_ascii=False)
# print resultapp
这里在初始化列表时有个坑,参考:http://www.07net01.com/2016/03/1344777.htmlhtm
# CityCluster = [[],[],[],[]]
# CityCluster = [[]]*4 #坑 这里的输出最终达不到想要的上面的效果,但在输出空列表是会产生迷糊,ip
#觉得是上面的结果,但输出非空列表时和上述的效果不同。
CityCluster = [list() for i in xrange (k)] #这样才正确utf-8
# -*- coding:utf-8 -*-
import numpy as np
from sklearn.cluster import KMeans
import jsonci
def loadData(filePath):
fr = open(filePath,'r+')
lines = fr.readlines()
retData = []
retCityName = []
for line in lines:
items = line.strip().split(",")
retCityName.append(items[0])
retData.append([float(items[i]) for i in range(1,len(items))])
for i in range(1,len(items)):
return retData,retCityName
if __name__=='__main__':
data,cityName = loadData('city.txt')
# cityName = json.dumps(cityName,encoding="GBK",ensure_ascii=False)
# print (cityName)
k = 3
km = KMeans(n_clusters=k)
label = km.fit_predict(data)
expenses = np.sum(km.cluster_centers_,axis=1)
print(expenses)
print label
# CityCluster = [[],[],[],[]]
# CityCluster = [[]]*4 #坑
CityCluster = [list() for i in xrange (k)] #这样才正确
for i in range(len(cityName)):
CityCluster[label[i]].append(cityName[i])
for i in range(len(CityCluster)):
print("Expenses:%.2f" % expenses[i])
CityCluster[i] = json.dumps(CityCluster[i],encoding="GBK",ensure_ascii=False) #为了可以顺利输出中文
print(CityCluster[i])it