今天,我遇到了这个dict方法get,它给出了字典中的一个键,返回了相关的值.
这个功能用于什么目的?如果我想找到与字典中的键相关联的值,我可以这样做dict[key],它返回相同的东西:
dictionary = {"Name": "Harry", "Age": 17}
dictionary["Name"]
dictionary.get("Name")
Run Code Online (Sandbox Code Playgroud) 相当新的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的新手.我想写这个
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的新手,仍然在学习技巧。
我如何将以下代码转换为单个内衬,在Python中可以吗?必须有一种整齐的方法来做到这一点。
try:
image_file = self.request.files['image_path']
except:
image_file = None
Run Code Online (Sandbox Code Playgroud) 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)
如果没有,最佳做法是什么?谢谢.
我正在尝试从 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 中的 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 ×7
dictionary ×2
csv ×1
javascript ×1
json ×1
keyerror ×1
python-2.7 ×1
python-3.x ×1
try-except ×1