数据源在变量中以以下格式(类型=字符串)吐出数据
{"fname":"John","mname":"Smith","lname":"Berkley"}
{"fname":"Nash","mname":"willy","lname":"Godson"}
{"fname":"Jack","mname":"Tuna","lname":"Welch"}
我将此输出复制到文本文件。我该如何仅将上述文本中的名字提取到列表变量中。
在变量上使用json.loads()不起作用。我有办法实现这一目标吗?
答案 0 :(得分:2)
您可以尝试:
import json
with open(YOUR_FILE, 'r') as f:
lines = list(f)
first_names = [ json.loads(line)['fname'] for line in lines ]
答案 1 :(得分:0)
您可以阅读文件的每一行。
检出:https://www.w3schools.com/python/python_file_open.asp
然后,您可以使用json.loads()提取所需的内容。
检出:https://www.w3schools.com/python/python_json.asp
答案 2 :(得分:0)
如果以json读取不适合您,则正则表达式解决方案将是读取fname":"
和","
之间的内容,并且可以在其中查找名字。现在使用findall
查找字符串中的所有实例:
import re
with open('file.json', 'r') as f:
text = f.read()
x = re.findall('fname":"(.*?)","', text)
输出:
['John', 'Nash', 'Jack']