我正在调用一些JSON并将相关数据解析为CSV.我不知道如何用默认密钥填充中间JSON dict文件,因为许多密钥都不受欢迎.当我试图将内容解析为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)

    i = i+1

推荐答案

You can use your_dict.get(key, "default value") instead of directly referencing a key.

Json相关问答推荐

PowerShell脚本未按预期生成预期的JSON输出

Postgres Select json数组并重新映射属性名称

将PostgreSQL转换为JSON对象

将PNG图像保存为Python中的JSON文件

使用 jq 从带有转义反斜杠字符的嵌套 JSON 中提取数据

取消嵌套数组并将数组名称添加为附加字段

小写嵌套特定键的震动转换

如何使用 Google 表格应用程序脚本将 JSON 中的多个字段提取到 Google 表格中

使用 jq 和 awk 拆分大型 JSON 文件

向 JSON 文件添加注释

Golang / Go - 如果 struct 没有字段,如何将其编组为空?

如何对使用转换器的 Grails 服务进行单元测试?

使用 gson 反序列化对象的特定 JSON 字段

jquery用json数据填充下拉列表

如何在 json 编码字符串内的子数组数据周围添加方括号?

Peewee 模型转 JSON

使用 JSONArray 和 JSONObject 进行 Foreach

在播放框架 JsObject 中解析 Json 数组

将 JSON 模式转换为 python 类

在没有 ASP.NET Core 的情况下将 IConfigurationSection 绑定到复杂对象