【发布时间】:2021-03-10 17:49:50
【问题描述】:
我真的遇到了一个小问题。
diccionario_antiguos = {}
data = open('Currency_price.json')
for i in data:
diccionario_antiguos = i
Currency_price.json 是一个包含如下字典的文件:
{"Dolar": ["80,25", "86,25"], "Euro": ["96,59", "97,04"]}
键是货币,值是带有价格的列表。
我的问题是,在我将所有信息传递给 diccionario_antiguos 后,我无法操作其中的任何内容。
如果我这样做:
print(diccionario_antiguos.get('Dolar')
我得到'str'对象没有属性'get'
如果我这样做
print(diccionario_antiguos['Dolar']
我得到的字符串索引必须是整数
然后我说“哦,我应该让你使用整数”,所以我做了:
print(diccionario_antiguos[0])
那里没有例外,但我得到 [](当我打印整个字典并且我知道数据在那里时)。
我不知道发生了什么,因为如果我将此方法应用于任何字典,它们都会起作用,即使键是字符串。
有什么解决办法吗?谢谢!
【问题讨论】:
-
请提供预期的MRE。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。
-
你为什么要循环播放?你为什么要分配
diccionario_antiguos = i?为什么这段代码甚至不涉及 JSON 解析器? -
@user2357112supportsMonica 我正在分配 diccionario_antiguos = i 因为这是我知道获取 dict 数据的唯一原因,而且它有效,有没有更好的方法?而且,json 解析器到底是什么?谢谢你的回答!
-
@Prune 我刚刚做了以下测试: diccionario_antiguos = {'Hola':123.4} print(diccionario_antiguos['Hola']) data = open('Currency_price.json') for i in data: diccionario_antiguos = i print(diccionario_antiguos['Dolar']) 对不起,混乱...如您所见,第一个 dict 工作得很好,而第二个结构相同,却没有。我想知道为什么,因为我看不到原因。谢谢你的回答!
-
再次,用工作代码更新你的问题——正如你所看到的,一个注释not正确地代表了代码。另请注意,我们没有拥有您的 JSON 文件。除非您已将问题与加载隔离开来,否则您应该从帖子中删除阅读内容,并在程序中简单地硬编码一些示例行。
标签: python json dictionary for-loop