Python 操作字典列表

Python 操作字典列表,python,json,list,dictionary,data-manipulation,Python,Json,List,Dictionary,Data Manipulation,我已成功从web导入此json文件,该文件如下所示: [{h_-mag:19.7,i_-deg:9.65,moid_-au:0.035},{h_-mag:20.5,i_-deg:14.52,moid_-au:0.028}, 等等 我想提取关键moid_au的值,稍后将moid_au与h_mag的关键值进行比较 这是有效的:printdata[1]['moid_-au'],但是如果我尝试询问列表中的所有元素,它将不会,我尝试了:printdata[:]['moid_-au'] 我尝试了迭代器和la

我已成功从web导入此json文件,该文件如下所示:

[{h_-mag:19.7,i_-deg:9.65,moid_-au:0.035},{h_-mag:20.5,i_-deg:14.52,moid_-au:0.028}, 等等

我想提取关键moid_au的值,稍后将moid_au与h_mag的关键值进行比较

这是有效的:printdata[1]['moid_-au'],但是如果我尝试询问列表中的所有元素,它将不会,我尝试了:printdata[:]['moid_-au']

我尝试了迭代器和lambda函数,但仍然没有工作,主要是因为我对数据操作是新手。当我有一个字典,而不是一个字典列表时,它可以工作

提前感谢您提供的其他提示。有些链接令人困惑。

听起来您使用lambda是错误的,因为您还需要地图:

每个lambda从列表中获取一条记录,然后将函数映射到该记录。

使用printdata[:]['moid\u au']等于printdata['moid\u au'],您可以看到它不起作用,因为数据没有名为'moid\u au'的键

尝试使用循环:

for item in data:
    print(item['moid_au'])

你想用哪种确切的方式来比较它们

以这样的方式获取值是否有用

list_of_dicts = [{"h_mag":"19.7","i_deg":"9.65","moid_au":"0.035"}, {"h_mag":"20.5","i_deg":"14.52","moid_au":"0.028"}]
mod_au_values = [d["moid_au"] for d in list_of_dicts]
h_mag_values = [d["h_mag"] for d in list_of_dicts]

使用迭代整个数组以获取键的所有实例的方法,此方法可能适合您

a = [data[i]['moid_au']for i in range(len(data))]
print(a)

你需要一个简单的。看看,还有一个关于Hi Giacomo的部分,我在网上读到的简单的“for”循环是针对一本字典的,而不是一个字典列表,我在如何访问它们方面遇到了困难。你需要展示你尝试过的代码。我提供的链接也解释了列表上的循环。我个人建议你找到一个好的如果你不懂这门语言,那么提问会比阅读教程和练习浪费更多的时间,而且你会因为在提问之前没有做过适当的研究而被否决。如果你对教程的某些方面有问题,你可以试着搜索答案,最后问一个链接到教程的特定问题,以便人们能够正确解释。嘿!这是针对数据中的k的。关键字:printdata[k]但是下面有人回答了一个简单的问题,它是有效的。我知道这是一个初学者的问题。感谢ClsForCookies,这是有效的。然而,问题不仅在于打印它,而且在于操作它,所以我将试着看看如何使它成为我可以使用的变量。为什么要使用get而不是常规索引列表MapLambda rec:rec['moid_au'],c?一个优点是,如果它们的键不存在,它不会抛出错误。这是我知道的唯一区别,从我的角度来看,它不一定是一个优点OK,这取决于它可能存在的问题,特别是如果你给它一个默认值,比如0,如果你计划按OP指定的方式绘制数据。正是这样!以后我可以做任何我想做的事情使用这两个变量,例如。plot@IreneDelCarmenPérez Merbis我很高兴我帮了你!如果这完全回答了你的问题,我建议你将其标记为已接受,以便其他人更容易看到。
a = [data[i]['moid_au']for i in range(len(data))]
print(a)
for key,  value in my_list.items (): 
       print key
       print value
for value in my_list.values (): 
       print value
for key in my_list.keys():
       print key