json去掉多个列表
这个问题在这里已经有了答案:
我认为@ Jean-FrançoisFabre试图表明:
import json
response = """
{
"age":[
{"#":"1","age":10},
{"#":"2","age":12},
{"#":"3","age":16},
{"#":"4","age":3}
],
"age2":[
{"#":"1","age":10},
{"#":"2","age":12},
{"#":"3","age":16},
{"#":"4","age":3}
],
"days_month":31,
"year":2017
}
"""
j = json.loads(response)
# note that the [2] means the third element in the "age2" list-of-dicts
print(j['age2'][2]['#']) # -> 3
print(j['age2'][2]['age']) # -> 16
json.loads()
将JSON格式的字符串转换为Python对象。 特别是它将JSON对象转换成Python字典和JSON列表到Python list
对象中。 这意味着在这种情况下,您可以访问存储在变量j
中的结果的内容,就如同它是一种或多种这些类型的Python数据类型的本地混合(并且看起来与在响应)。
由于您所查找的搜索标准未包含在各个数据结构的索引中,因此我会使用列表理解来执行此操作。 对于你的例子,这将是
[person['age'] for person in j['age2'] if person['#'] == u'3'][0]
这遍历了'age2'下列表中的所有项目,并将所有编号为'3'的项目放入列表中。 [0]选择列表的第一个条目。
但是,这是非常低效的。 如果你有大的数据集,你可能想看看熊猫:
df = pandas.DataFrame(j['age2'])
df[df['#'] == '3']['age']
只要您的数据可以用某种系列或表格来表示,性能就会更高。
链接地址: http://www.djcxy.com/p/38055.html上一篇: json strip multiple lists
下一篇: How to read and write dictionaries to external files in python?