Python 如何筛选和获取值;从json
我有一个类似下面的jsonPython 如何筛选和获取值;从json,python,json,Python,Json,我有一个类似下面的json { "headers": [ "product_id", "price", "is_discontinued" ], "product_stores": [ [ 2093085822, 23.58, false ], [ 2093085837, 16.
{
"headers": [
"product_id",
"price",
"is_discontinued"
],
"product_stores": [
[
2093085822,
23.58,
false
],
[
2093085837,
16.1,
true
],
...
这是数据帧中的一个列,包含其他列,如ID、created_at等。我希望从该列中获得所有产品ID,它可以是一个类似“20930858222093085837”的字符串,但只有当“is_contracted”为真时,解决方案才非常简单。只需使用一些列表理解:
json_dict = # Load the json here
what_you_want = [item[0] for item in json_dict["product_stores"] if item[2]]
与Rafael的答案类似,但您也可以在理解中使用命名变量,以保持可读性:
output = [pid for pid, price, discontinued in json_dict["product_stores"] if discontinued]
请记住,所有子列表的长度必须为3才能正常工作是的,已经修复。谢谢你提醒medid不要这样做。错误“字符串索引必须是整数”补充,如果您不需要
price
,您可以将其替换为下划线。
是的,我本来打算这样做,但我保留了它,因为它不是一个很长的名称。下划线仍然有一个指定的变量,它只是一个模糊的名称。我通常只在名称很长且不需要编辑时使用下划线。错误:“字符串索引必须是整数”首先,您需要将JSON字符串转换为dict对象才能正常工作。请不要只是要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。给我们一个清楚的解释什么是不起作用的,并提供一个解决方案。阅读一定要参加参观并阅读这篇文章。