从网络上爬下来的数据以列表嵌套字典类型数据的方式存储(如下所示)。如果我们需要拿这些数据放到R里或者其他软件中使用,就需要对这种数据格式进行转换。下面我们就看一下如何用python把它们存储到excel里。

[{"price": ["7.90"], "link": ["//chaoshi.detail.tmall.com/item.htm?id=521669702675&rewcatid=50518032"], "pro_sum": ["190"], "name": ["\r\n \u3010\u5929\u732b\u8d85\u5e02\u3011 \u957f\u5eb7\u9999\u829d\u9ebb\u8c03\u5473\u6cb9 100ml\u9999\u6cb9 \u53a8\u623f\u5fc5\u5907\u8c03\u5473\u6cb9 \u51c9\u62cc\r\n"], "pro_id": ["521669702675"]},
{"price": ["36.00"], "link": ["//chaoshi.detail.tmall.com/item.htm?id=527987740855&rewcatid=50518032"], "pro_sum": ["38"], "name": ["\r\n \u3010\u5929\u732b\u8d85\u5e02\u3011\u9f99\u6eaa \u9ed1\u829d\u9ebb\u6cb9 455ml \u6ef4\u6ef4\u771f\u9999 \u5065\u5eb7\u767e\u5e74 \u7eff\u8272\u98df\u54c1\r\n"], "pro_id": ["527987740855"]}
………………]

想要按照属性分类在excel里存储成这样的格式。

import xlwt

wbk = xlwt.Workbook()
sheet = wbk.add_sheet("tips") #设定存放在Excel里的sheet页名称

obj = open("D:\\mybegin\items20160605.json", "r") #打开存放数据的json文件
all_txt = obj.read()
new_txt = eval(all_txt)

先来初始化key的个数
keys = []
for key in new_txt[0].keys() :
     keys.append(key);
keys.sort()

i = 0

把属性名称写入excel的第一行
for k in keys:
     dickkey=str(k)
     sheet.write(0, i, dickkey)
     i += 1

接下来就要把没个字典键值里面的数值写入每个对应的属性里面啦
for a in range(347):#有多少行数据
     i=0 #列
     j = a+1 #行
     for k in keys:
         dickkey=str(k)
     #print "dickkey===",dickkey
         vals = new_txt[a].get(dickkey, None) #k or dickkey
         if vals is None:
             vals = new_txt[a].get(k, None) #k or dickkey
     #print "vals==========",vals
         for item in vals :
             import types
             if type(item) is types.StringType :
                 item = item.decode('utf8')
             sheet.write(j,i ,item )
             i +=1
     j += 1
wbk.save('20160605.xls') #保存为 xls文件


这样就转换成了便于浏览的excel格式了,要不要试试?