【发布时间】:2018-02-02 14:52:54
【问题描述】:
我有一个来自以下类型的大型数据库:
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 个键的 dict names 数据库:Buying_Price,Selling_Price,其中每个我将拥有以下内容:
Buying_Price = {"ben":172,"josh":174}
Sellng_Price = {"ben":172,"josh":174}
谢谢。
【问题讨论】:
-
我很困惑。您的程序是否在运行时没有崩溃并产生错误的结果(“只有最后一项的值与 'josh' 一样”)?还是它崩溃并且没有产生任何结果(“我收到下一个错误”)?或者......两者,不知何故?你有没有尝试过 - 除了你不向我们展示?
-
看起来你正在......试图将一个字符串“附加”到另一个字符串! [正如错误所说],你能指定你想要的输出吗?
-
您的代码有很多问题,但是您在帖子中所指的是您已将
Database["Buying_Price"]定义为字符串并且字符串对象没有.append()方法,只有列表可以。 -
有什么建议那么如何获得我正在寻找的结果?
-
@Ben 你在找什么结果?
标签: python loops dictionary