我有一个如下的字符串,它是JSON格式:
test_geometry_profile =
'{
"geometryProfile": {
"SPEEDSeedModel0.osm": {
"WWR": 0.5,
"Orientation": 0.0
},
"SPEEDSeedModel1.osm": {
"WWR": 0.6,
"Orientation": 0.0
}
}
}'
我想用SPEEDSeedModel1.osm
替换此字符串中的子字符串'TestOSM_radiantDOAS.osm'
。
我使用了代码:
test_geometry_profile.sub("SPEEDSeedModel1.osm", 'TestOSM_radiantDOAS.osm')
但是,这不起作用。我在这里找不到什么东西吗?
答案 0 :(得分:1)
它正常工作,但是sub
会返回字符串的副本并进行替换。您可以通过运行来看到这一点:
test_geometry_profile =
'{
"geometryProfile": {
"SPEEDSeedModel0.osm": {
"WWR": 0.5,
"Orientation": 0.0
},
"SPEEDSeedModel1.osm": {
"WWR": 0.6,
"Orientation": 0.0
}
}
}'
puts test_geometry_profile
puts test_geometry_profile.sub("SPEEDSeedModel1.osm", 'TestOSM_radiantDOAS.osm')
puts test_geometry_profile
第二个值输出将进行更改,第三个值是原始字符串。你想要的是sub!
,它改变了字符串:
puts test_geometry_profile
puts test_geometry_profile.sub!("SPEEDSeedModel1.osm", 'TestOSM_radiantDOAS.osm')
puts test_geometry_profile
现在第二个和第三个值都有新的字符串。