这个问题有点问,但它让我一整天都头疼(因为我对编程相当陌生)。
基本上我有大量的 ID 列表(名为 pk),我需要获取所有这些 ID,因为它们被其他文本包围。
我该如何检索所有 ID?顺便说一句,每个 ID 都是这样的:
"pk":12345678
"pk":123456789
ID 是 8 或 9 位数字。
非常感谢大家,任何帮助将不胜感激!
编者注:Asker 确实在这个答案的评论中发布了他的完整 json 数据。
ids = [var["pk"]]
其中 var 是 JSON 的变量
如果你再澄清一下你的 JSON,我也许可以使它更精确。
我只使用JSONPath。提取所有
ids
的一种简单但极其通用的方法是:
>>> from jsonpath import jsonpath
>>> from json import loads
>>> instagram_pop = open("instagram_popular_list.json"), "r").read()
>>> instagram_data = loads(instagram_pop)
>>> jsonpath(instagram_data, '$..id')[:3]
[u'234148392791340801_11305924', u'234098919041318605_2364270', u'234153616185741448_1907035']
当然,由于你的数据是扁平的,你可以直接循环,例如:
[item['id'] for item in instagram_data['items']]
但我有一种感觉,你有更多的结构解析要做,所以我认为 jsonpath 是一个更灵活的答案。