我有一个简单的python脚本,如下所示。
with open(fname, 'r+') as f:
json_data = json.load(f)
message = json_data['Info']
for line in message.split('<br>'):
if(len(line) < 25):
print(line)
if ':' in line:
k,v = line.strip().split(':')
print(k,v)
我得到k,v采用以下格式
(u'Images', u' 23')
(u'Links', u' 225')
message
输出如下所示。
Title: Worlds best websit | mywebsite.com
Links: 225
Images: 23
Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36
CPUs: 8
我想提取数据Images:23
和Links:225
,并将其更新为脚本中的同一个json文件f
。
如果我要做的话
json_data[k] = v
json.dump(json_data,f)
它破坏了JSON文件。意思是如果我将上面两行添加到我的代码中。 并做
cat output.json | python -m json.tool
从命令行。我收到以下错误。
Extra data: line 2 column 1 - line 2 column 45376 (char 2139 - 47514)
我不明白什么是&#39;你&#39;在输出?它是某种编码吗?如果是,我该如何处理?
答案 0 :(得分:-1)
试试这个
import sys
import json
import re
fname = sys.argv[1]
openedFile = open(fname, 'r')
content = openedFile.read()
openedFile.close()
pattern = "Links: (\d+?)\nImages: (\d+?)"
matchObj = re.search(pattern, content)
if matchObj:
openedFile = open(fname, 'w')
newContent = {'Links': matchObj.group(1), 'Images': matchObj.group(2)}
json.dump(newContent, openedFile)
openedFile.close()