相关疑难解决方法(0)

为什么dict.get(key)而不是dict [key]?

今天,我遇到了这个dict方法get,它给出了字典中的一个键,返回了相关的值.

这个功能用于什么目的?如果我想找到与字典中的键相关联的值,我可以这样做dict[key],它返回相同的东西:

dictionary = {"Name": "Harry", "Age": 17}
dictionary["Name"]
dictionary.get("Name")
Run Code Online (Sandbox Code Playgroud)

python dictionary

553
推荐指数
11
解决办法
46万
查看次数

Python:默认的dict键,以避免KeyError

相当新的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)

python csv json dictionary keyerror

27
推荐指数
3
解决办法
3万
查看次数

python三元运算符与赋值

我是python的新手.我想写这个

if x not in d:
    d[x] = {}
q = d[x]
Run Code Online (Sandbox Code Playgroud)

使用三元运算符以更紧凑的方式

q = d[x] if x in d else (d[x] = {})
Run Code Online (Sandbox Code Playgroud)

但这会给出语法错误.我错过了什么?

python

2
推荐指数
1
解决办法
4903
查看次数

一种用于处理字典KeyError的班轮

我是Python的新手,仍然在学习技巧。

我如何将以下代码转换为单个内衬,在Python中可以吗?必须有一种整齐的方法来做到这一点。

try:
    image_file = self.request.files['image_path']
except:
    image_file = None
Run Code Online (Sandbox Code Playgroud)

python python-2.7

2
推荐指数
1
解决办法
988
查看次数

Python中用于访问可能不存在的ak/v对值的最佳实践?

function getParams(data) {
    return {
        id: data && data.uuid
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,上面代表了Javascript中用于访问对象项的常见模式.

Python中用于访问dict项目的最常用的等效实践是什么?

会这样吗?

def getParams(data):
    params = {}
    if data is not None and hasattr(data, "id"):
        params["id"] = data["id"]
    return params
Run Code Online (Sandbox Code Playgroud)

如果没有,最佳做法是什么?谢谢.

javascript python

1
推荐指数
1
解决办法
142
查看次数

如何从 JSON 执行许多变量赋值,如果键错误赋值 None 并在 python 中执行其余的所有

我正在尝试从 JSON 文件中获取值并将其存储在 python 字典中。

我想为我提供的键中可用的值和那些不可用的值分配值,我想存储为“无”

我尝试了以下,

try:
    dataDict['syn']= results['synonyms']
    dataDict['reactivity']= results['crossReactivity']
    dataDict['Temp']= results['storageTemp']
    dataDict['catNum']= results['catalogNum']
    dataDict['shipping']= results['shippingInstructions']
except KeyError as e:
    dataDict[e.args[0]] = "None"
sa = f"""
        synonyms: {dataDict['syn']}
        crossReactivity: {dataDict['reactivity']}
        storageTemp: {dataDict['Temp']}
        catalogNum: {dataDict['catNum']}
        shippingInstructions: {dataDict['shipping']}
        """
print (sa) 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出,

synonyms: None
crossReactivity:
storageTemp:
catalogNum:
shippingInstructions:
Run Code Online (Sandbox Code Playgroud)

如果 JSON 文件中的“同义词”不可用,则将“无”分配给 dataDict['syn'],但其他语句将被忽略。

如何执行其余的任务,而不必在单独的 try 和 except 中编写每个和所有内容?

python python-3.x try-except

1
推荐指数
1
解决办法
34
查看次数

在字典中搜索列表元素

我想一一获取列表中的元素,并在 python 中的 4 个不同词典中搜索它们。那么我想创建一个新字典并将该列表的元素作为键并将我从这 4 个字典中找到的值作为值?

例如:

list = ['a', 'b', 'c', 'd', 'e']
dict1 = {'a': 10, 'b': 2, 'c': 45}
dict2 = {'a': 15, 'b': 55}
dict3 = {'a': 79, 'b': 6, 'c': 3}
dict4 = {'d': 600, 'e': 30}
Run Code Online (Sandbox Code Playgroud)

我想要的结果:

newlist = {'a': [10, 15, 79, 0], 
'b': [2, 55, 6, 0], 
'c': [45, 0, 3, 0], 
'd': [0, 0, 0, 600], 
'e': [0, 0, 0, 30]}
Run Code Online (Sandbox Code Playgroud)

python

-2
推荐指数
1
解决办法
78
查看次数