好久没写博客了,今天又写一个流水账。Python的 json 和 Vim 的替换

因为项目的缘故,要收集网上的数据。其中有一个数据是js代码的json数据,而我想用python来解析。因此查了一下解析的方法,在python 2.6之后python就自带json库。而我用的python 3.2 则是用 load 和 loads 读取。即:

import json

file = open("data", "r")
jsonData = json.load(file.read())
# 或者
jsonData = json.loads(file.read())

其中 load 读取的是 

{"id":"1001","name":"中国"}

这样的json数据,返回的是一个python的字典类型。

而 loads 读取的是

[{"id":"1001","name":"中国"},{"id":"1002","name":"美国"}]
这样的json数据,返回的是一个 list

但是直接用python来读取会报错,因为python的json格式和js的格式不同。python的读取json时要求key和value都是字符串,二js 似乎没那么严格。不过我不熟js因此不确定。比如我获取到的json是

{"id":1001,"name":"中国"}

那么用python直接读就会报错,因为 1001 不是字符串。

然后我就用vim去替换,把所有数字都变为字符串。

通过观察可以得出,要替换的数字是:冒号 数字 逗号 的形式,即 :\d+, 

因此可以写这样的命令

:s/:\(\d\+\),/:"\1",/g

由于vim的正则比语法较奇怪,所以多了好多斜线。并且vim的分组捕获方法不是 $1 而是 \1 也比较奇怪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值