相当新的python,新手开发人员,第一次来电
我正在调用一些JSON并将相关数据解析为csv.我无法弄清楚如何使用默认密钥填充中间json Dict文件,因为许多都是未填充的.结果是KeyError,因为我试图将内容解析为csv.会喜欢任何建议!
谢谢.
更新:谢谢大家!我现在收到(制造商)的'NoneType'错误:
import urllib2, json, csv, sys, os, codecs, re
from collections import defaultdict
output = 'bb.csv'
csv_writer = csv.writer(open(output, 'w'))
header = ['sku', 'name', 'description', 'image', 'manufacturer', 'upc', 'department', 'class', 'subclass']
csv_writer.writerow(header)
i=1
while i<101:
print i
bb_url = urllib2.Request("http://api.remix.bestbuy.com/v1/products(sku=*)?show=sku,name,description,image,manufacturer,upc,department,class,subclass&format=json&sort=sku.asc&page=" + str(i) + "&pageSize=100&apiKey=*****************")
bb_json = json.load(urllib2.urlopen(bb_url))
print bb_json
for product in bb_json['products']:
row = []
row.append(product['sku'])
if product['name']:
row.append(str((product['name']).encode('utf-8')))
else:
row.append("")
row.append(str(product.get('description',"")))
row.append(str(product['image'])+ " ")
if product['name']:
row.append(str(product.get('manufacturer',"").encode('utf-8')))
else:
row.append("")
row.append(str(product.get('upc','').encode('utf-8')))
row.append(str((product['department']).encode('utf-8')))
row.append(str((product['class']).encode('utf-8')))
row.append(str((product['subclass']).encode('utf-8')))
csv_writer.writerow(row) …Run Code Online (Sandbox Code Playgroud) 目的:
我想转换以下架构:
group, id, name
A, 12345, "eeny"
A, 23456, "meeny"
A, 34567, "miney mo"
B, 99999, "foo"
B, 88888, "bar"
B, 77777, "foobar"
Run Code Online (Sandbox Code Playgroud)
成:
group, id1, name1, id2, name2, id3, name3
A, 12345, "eeny", 23456, "meeny", 34567, "miney mo"
B, 99999, "foo", 88888, "bar", 77777, "foobar"
Run Code Online (Sandbox Code Playgroud)
在Python的上下文中,我假设可以使用Pandas groupby()和/或unstack()来完成,但我遇到的大多数文档都涉及数值计算而不是字符串.
任何帮助将不胜感激.谢谢!