Python处理Json数据

当数据是 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)

简单的数据就是以上这些,如果以后出现类似问题再持续整理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值