gpt4 book ai didi

python - 使用循环将值添加到字典键

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:57 24 4
gpt4 key购买 nike

我有一个以下类型的大型数据库:

data = {
"2": {"overall": 172, "buy": 172, "name": "ben", "id": 2, "sell": 172},
"3": {"overall": 173, "buy": 173, "name": "dan", "id": 3, "sell": 173},
"4": {"overall": 174, "buy": 174, "name": "josh", "id": 4, "sell": 174},
...

依此类推,大约 10k 行。

然后,我创建了一个循环来查找此 dict() 内是否有特定名称:我使用了下一个循环

items = ["ben","josh"]

Database = dict()
Database = {"Buying_Price": "", "Selling_Price": ""}
for masterkey, mastervalue in data.items():
if mastervalue['name'] in items:
Database["Name"] = Database["Name"].append(mastervalue['name'])
Database["Buying_Price"] = Database["Buying_Price"].append(mastervalue['buy'])
Database["Selling_Price"] = Database["Selling_Price"].append(mastervalue['sell'])

但是,我遇到了下一个错误:

Database["Buying_Price"] = Database["Buying_Price"].append(mastervalue['buy_average'])
AttributeError: 'str' object has no attribute 'append'

我的目标是获得一个带有 2 个键的字典名称数据库:Buying_Price,Selling_Price 其中每个键中我将具有以下内容:

Buying_Price = {"ben":172,"josh":174}
Sellng_Price = {"ben":172,"josh":174}

谢谢。

最佳答案

您发布的代码存在一些问题,因此我们将逐行修复它们:

items = ["ben", "josh"]

Database = dict()
Database = {"Buying_Price": "", "Selling_Price": ""}
for masterkey, mastervalue in data.items():
if mastervalue['name'] in items:
Database["Name"] = Database["Name"].append(mastervalue['name'])
Database["Buying_Price"] = Database["Buying_Price"].append(mastervalue['buy_average'])
Database["Selling_Price"] = Database["Selling_Price"].append(mastervalue['sell_average'])
  1. 在Python中,你不需要定义对象类型显式地然后分配它的值,所以这意味着 Database =
    dict()
    是多余的,因为您已经将其定义为字典下面的行。
  2. 您打算汇总 if 语句的结果因此 Buying_PriceSelling_Price 都应该定义为列表而不是字符串。您可以通过分配 [] 来实现值或文字 list()
  3. 根据您的数据结构,您没有buy_averagesell_average 键,仅用于buysell,因此请确保使用正确的键。
  4. 使用时,您无需重新分配列表值append() 方法,它是对象的方法,因此它将就地更新对象。
  5. 您没有设置 Database 对象中的 Name,并且但您正试图向其附加值。

总的来说,代码应该大致如下:

items = ["ben","josh"]

Database = {"Buying_Price": [], "Selling_Price": [], "Name": []}
for masterkey, mastervalue in data.items():
if mastervalue['name'] in items:
Database["Name"].append(mastervalue['name'])
Database["Buying_Price"].append(mastervalue['buy'])
Database["Selling_Price"].append(mastervalue['sell'])

关于python - 使用循环将值添加到字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com