小编mar*_*eau的帖子

如何提取嵌套的JSON数据?

我正在尝试从数据JSON获取值。我已经成功遍历了JSON数据,几乎满足了我的需求!

在Python中运行以下命令: autoscaling_name = response['Reservations'][0]['Instances'][0]['Tags']

给我这个:

'Tags': [{'Key': 'Name', 'Value': 'Trove-Dev-Inst : App WebServer'}, {'Key': 'aws:autoscaling:groupName', 'Value': 'CodeDeploy_Ernie-dev-Autoscaling-Deploy_d-4WTRTRTRT'}, {'Key': 'CodeDeployProvisioningDeploymentId', 'Value': 'd-4WTRTRTRT'}, {'Key': 'Environment', 'Value': 'ernie-dev'}]
Run Code Online (Sandbox Code Playgroud)

我只想获得价值"CodeDeploy_Ernie-dev-Autoscaling-Deploy_d-4WTRTRTRT"。这是关键"aws:autoscaling:groupName"

我如何才能进一步执行命令以仅返回值"CodeDeploy_Ernie-dev-Autoscaling-Deploy_d-4WTRTRTRT"

python json

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

在列表中查找下一个最接近的数字

我有一个清单:

lst = [100, 210, 330, 460, 600, 750, 910, 1080, 1260]
Run Code Online (Sandbox Code Playgroud)

和一个给定的数字 470

我想找到它的两个最接近的数字之间的间隔的下一个上限......这会给出,600因为它是下一个最接近的数字。

如果是670我会得到750

我有lst[min(range(len(lst)), key = lambda i: abs(lst[i]-K))]哪个给出壁橱编号,无论它是否是上限。

python algorithm python-3.x

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

提高dict初始化的效率

我初始化一个Python的所有值dict,以0在下面的代码:

ecoPos = ["AAC refrig","advanced insulation","advanced-insulation","fiber insulation","high insulation thickness","high R-value","high R value","alternative energy","hydro-electric","hydroelectric","hydro-powered","hydro powered","hydropowered","solar powered","solar-powered","wind powered","wind-powered","applicator-free","applicator free","bamboo","beyond-meat","beyond meat","plant-based","plant based","vegan","vegetarian","bike","e-bike","ebike","small scooter","biochar","compost","Biodegradable","bioplastic","Bisphenol A-free","Bisphenol A free","BPA-free","BPA free","chicken","duck","cultured meat","eggs","geese","goose","pork","quail","turkey","climate-friendly","climate friendly","low GWP","low global warming potential","closed-loop process","closed loop process","compact fluorescent lamp","CFL","cork","corrugated cardboard","corrugated-cardboard","cotton","cruelty-free","cruelty free","PETA approved","PETA-approved","drip sprinkler","Dual Fuel","Dual-Fuel","fuel cell","hydrogen fuel","electric dryer","electric mower","energy efficient","energy saving","energy-saving","high efficiency","highly efficient","less energy","low-impact","low impact","Ethylene vinyl acetate","EVA","flax","linen","Forest Stewardship Council","FSC","programme for the Endorsement of Forest Certification","PEFC","sustainable forestry initiative","SFI","heat pump dryer","hemp","HFO-emitting","HFO emitting","HFO-blowing","HFO blowing","hydrofluoroether","HFE","hydrofluoropolyether","HFPE","incandescent ","jute","kenaf","sunhemp","lead-acid","lead acid","liquefied natural gas","LNG","Liquefied petroleum gas","LPG","Microwave","mulching flower bed","natural fiber","natural fibre","organic","ozone-free","ozone …
Run Code Online (Sandbox Code Playgroud)

python performance dictionary

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

有没有办法让函数参数用于调用字典键?

我有一本字典,其中包含分配给元素周期表元素的数值。我想要一个函数,我可以将其中一个参数作为元素之一,以便用户可以仅使用输入参数进行计算。

这是我迄今为止所拥有的

ele={"H":3, "He":7, "O":9}

def func(x,y,z,d)
    i=ele["x"]*y + ele["z"]*d
    return i
func("H", 2, "O", 3)
print(i)
    
Run Code Online (Sandbox Code Playgroud)

因为i我想看到 33 但它甚至没有那么远。我不断得到一个KeyErrorfor x

python dictionary function

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

如何将 `if` / `else` 转换为 1 行代码?

我有这样的Python逻辑:

file = 'POMNI2022.csv'

pomni=False

if 'POMNI' in file:
    pomni=True
else:
    pass
Run Code Online (Sandbox Code Playgroud)

有什么办法可以让我在这里只使用 1 行代码来实现 if else 逻辑吗?

python

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

如何使用键作为决胜局按值对字典进行排序?

例如,如果我排序:

{3:4, 4:5, 5:5, 7:2}
Run Code Online (Sandbox Code Playgroud)

我期望:

{7:2, 3:4, 4:5, 5:5}
Run Code Online (Sandbox Code Playgroud)

注意:这不是其他“如何对字典排序”问题的重复,因为它们没有显示如何使用键作为决胜局。

有关的:

如何按值对字典进行排序?

Python 3 列表排序与决胜局

python sorting dictionary python-3.x

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

附加列表时出现意外的循环行为

我想知道为什么下面的代码按预期工作。目的是制作一个列表列表,其中每个内部列表都包含特定作者的书籍。一位朋友在临时列表声明后不小心将其追加到临时列表中,并且代码仍然有效。我在内部 for 循环之后追加,它的工作方式与正常情况一样。

代码:

all_books = []
for author in os.listdir("books/"):
    tmp = []

    all_books.append(tmp)

    for book in os.listdir("books/" + author + "/"):
        tmp.append(book)

print(all_books)
Run Code Online (Sandbox Code Playgroud)

输出:

[['On_the_Origin_of_Species.txt', 'The_Power_of_Movement_in_Plants.txt'],
 ['Adventures_of_Sherlock_Holmes.txt',
  'Memoirs_of_She rlock_Holmes.txt',
  'The_Lost_World.txt'],
 ['A_Treatise_of_Human_Nature.txt', 'An_Enquiry_Concerning_Human_Understanding.txt'],
 ['Treasure_Island.txt'],
 ['Ivanhoe A_Romance.txt', 'The_Lady_of_the_Lake.txt']]
Run Code Online (Sandbox Code Playgroud)

python loops

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

添加一个循环,直到用户输入有效答案?

我想为此添加一个循环:

question = raw_input("Reboot Y/N ")
if len(question) > 0 and question.isalpha():
    answer = question.upper()
    if answer == "Y":
        print "Reboot"
    elif answer == "N":
        print "Reboot Cancled"
    else:
        print "/ERROR/"
Run Code Online (Sandbox Code Playgroud)

因此,如果用户输入任何其他内容,则会出现错误并将其发送回问题.

python loops if-statement

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

加入作者姓名,首先用逗号分隔,最后用"和"分隔

我是Python的新手,并且有一个由名字分隔的名单\and,我需要加入,用逗号分隔第一个,用'和'分隔最后一个.但是,如果有超过4个名称,则返回值应该是第一个名称以及短语"et al.".所以,如果我有

 authors = 'John Bar \and Tom Foo \and Sam Foobar \and Ron Barfoo'
Run Code Online (Sandbox Code Playgroud)

我应该得到'约翰巴尔等人'.而与

authors = 'John Bar \and Tom Foo \and Sam Foobar'
Run Code Online (Sandbox Code Playgroud)

我应该得到'John Bar,Tom Foo和Sam Foobar'.

它也应该只使用一个作者名称,单独返回该单个名称(和姓氏).

我试过做类似的事情

  names = authors.split('\and')
  result = ', '.join(names[:-1]) + ' and '.join(names[-1])
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用.所以我的问题是我如何使用joinsplit得到第一个作者用逗号分隔,最后用'和'考虑如果有超过四个作者,只有第一个作者名称应该与'等人'一起返回. .

python join

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

逃避感叹号python

我正在尝试提供带有感叹号的密码作为密码的一部分,以解决zipfile的extractall功能:

zf.extractall(pwd="password2015!")
Run Code Online (Sandbox Code Playgroud)

我曾尝试过:将pwd作为字符串提供,这会返回一个类型错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python34\lib\zipfile.py", line 1240, in extractall
    self.extract(zipinfo, path, pwd)
  File "C:\Python34\lib\zipfile.py", line 1228, in extract
    return self._extract_member(member, path, pwd)
  File "C:\Python34\lib\zipfile.py", line 1290, in _extract_member
    with self.open(member, pwd=pwd) as source, \
  File "C:\Python34\lib\zipfile.py", line 1129, in open
    raise TypeError("pwd: expected bytes, got %s" % type(pwd))
TypeError: pwd: expected bytes, got <class 'str'>
Run Code Online (Sandbox Code Playgroud)

我也试过提供,pwd=password2015\!但这产生了语法错误.

有谁知道为什么这会返回这样的错误?我以为extractall应该期待一个字符串.

python-3.x

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