通过python

时间:2015-08-08 14:41:12

标签: python regex

我有一个STRING,其中包含以下内容:

tesla = {"number_of_shares":0, "avg_price":200}

我希望将股票数量换成3个例子:

tesla = {"number_of_shares":3, "avg_price":200}

我知道我可以这样做:

string = r'tesla = {"number_of_shares":0, "avg_price":200}'
new_string = string.split(":")[0] + ":3" + "," + string.split(",",1)[1]

但我想要的是这样的:

string = r'tesla = {"number_of_shares":0, "avg_price":200}'
replace_function(string_before_number=r'tesla = {"number_of_shares":}', string)  # replace the number which comes after r'"number_of_shares":' with 3

1 个答案:

答案 0 :(得分:2)

有比re更好的方法,但你可以重新发布:

tesla = {"number_of_shares":3, "avg_price":200}

输出:

import json

def parse_s(s, k, repl):
    name, d = s.split("=", 1)
    js = json.loads(d)
    js[k] = repl
    return "{} = {}".format(name, str(js))


print(parse_s(string, "number_of_shares", "3"))

或者使用json并使用密钥:

word-wrap: break-word