当数据是 JSON 格式时
数据信息如下:
$ vim data.json
{
"name": "zhang san",
"age": 30,
"isStudent": false,
"courses": ["Math", "Science", "History"],
"address": {
"street": "Spirng Main St",
"city": "Anytown"
}
}
使用Python获取数据:
import json
filepath = './data.json'
with open(filepath, 'r') as f:
data = json.load(f)
print(data)
当数据是文本类似字典时
当数据在一行时
$ vim user.txt
username: 'lisi' password: '******'
处理如下:
import json
import re
filepath = './user.txt'
with open(filepath, 'r') as f:
content = f.read().strip() # 读取并去除首尾空格
# 使用正则表达式提取键值对
pattern = r'(\w+):\s*([^ ]+)'
matches = re.findall(pattern, content)
# 转成字典
data = {}
for k, v in matches:
value = v.strip("'\"")
if value.isdigit():
value = int(value)
data[k] = value
json_data = json.dumps(data, indent=4)
print(json_data)
当数据换行时
$ vim user.txt
"username": "lisi"
"password": "*******"
处理如下:
import json
filepath = './user.txt'
data = {}
with open(filepath, 'r', encoding='utf-8') as file:
for line in file:
line = line.strip()
if not line:
continue
key, value = line.split(':', 1) # 只分割第一个冒号
key = key.strip().strip('"') # 去除键的引号和空格
value = value.strip().strip('"') # 去除值的引号和空格
data[key] = value
# 转换为 JSON 格式输出
json_output = json.dumps(data, indent=4)
print(json_output)
简单的数据就是以上这些,如果以后出现类似问题再持续整理。