2016-07-15 56 views
-1

我正在编写一个将要交易选项的程序。 使用谷歌财务我能够在未完成的json文件中获得选项数据。JSON重新格式化

可以找到数据here

如果您单击链接,您将看到名称和值应该用引号括起来,但不是。事实上NONE的名字都是用引号引起来的,只有一些值是。

实施例的数据:

{届满:{Y:2016,M:7,d:15},到期:[{Y:2016,M:7,d:15}],提出: [{CID: “779929396002479”,名称: “”,S: “AAPL160715P00050000”,例如: “OPRA”,p: “0.01”,CS: “CHB”,C: “0.00”,CP: “0.00”,b :“ - ”,a:“0.01”,oi:“2490”,vol:“ - ”,罢工:“50.00”,到期日:“2016年7月15日”}],underlying_id:“22144”,underlying_price:98.599998}

我知道代码为C#来解决这个问题是:

data = Regex.Replace(data, @"(\w+:)(\d+\.?\d*)", "$1\"$2\""); 
data = Regex.Replace(data, @"(\w+):", "\"$1\":"); 

我需要将C#代码转换为Python或能够将文件加载到Python,任何机构可以帮助?

回答

0

的可能重复:python .replace() regex

这里是对Python 3.5文档的链接,请您在这里发布之前搜索库/语言功能。

你需要做以下步骤Python来完成这个

导入regex库

import re 

读取文件

with open('f-1.txt', 'r') as myfile: 
    data=myfile.read().replace('\n', '') 

使用re.sub()开展你的内容替换

data = re.sub("(\w+:)(\d+\.?\d*)", "$1\"$2\"", data); 
data = re.sub("(\w+):", "\"$1\":", data); 

如果你想把这个json变成一个python对象,你需要做以下的事情。

import json 
json_object = json.loads(data) 
+0

这将所有值替换为$ 1或$ 2 ...但它会将引号 – Usman