我正在尝试在JSON文件中搜索用户名,但它只是返回[]而不是tom123。
JSON文件内容:
[{"id":"001788fffe48cbdb","username":"tom123"}]
代码:
import json
import re
import requests
f = open("first.json", "r+")
print(f.read())
username = [index["username"] for index in f.read()]
print(username)
f.close()
答案 0 :(得分:1)
f
是一个文件对象,它是一个类似迭代器的对象,这意味着当你迭代它时,你已经消耗了它,你又不能再使用它了。在这种情况下,您首先在以下行中使用它:
print(f.read())
另外,对于加载json文件,您应该使用json.load()
函数。然后,您可以在阅读后保留内容,然后搜索保留的内容:
with open("first.json") as f
content = json.load(f)
username = [index["username"] for index in content]
print(username)
同样作为一种基于功能的方法,您可以使用operator.itemgetter
和map()
来获取包含所有用户名的迭代器(在内存使用方面更优化):
from operator import itemgetter
with open("first.json") as f
content = json.load(f)
usernames = map(itemgetter("username"), content)
答案 1 :(得分:1)
也许这样你想要解析json所以你可以像dict一样使用它
import json
import re
import requests
f = open("first.json", "r+")
data = json.loads(f.read())
username = [index["username"] for index in data]
print(username)
f.close()