python解析字符串以获取tex之间的内容

2024-09-29 23:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在一组字符串之间收集文本(数据)?例如,下面有一段代码片段,它是json的一个修改版本,我无法更改它。你知道吗

但是我想在presets = {...}之间收集数据

{
    data = {
        friends = {
            max = 0 0,
            min = 0 0,
        },
        family = {
            cars = {
                van = "honda",
                car = "ford",
                bike = "trek",
            },
            presets = {
                location = "italy",
                size = 10,
                travelers = False,
            },
            version = 1,
        },
    },
}

因此,我得到的字符串将是单词presets后面的两个括号{...}之间的任何字符串。在这种情况下:

location = "italy",
size = 10,
travelers = False,

我的出发点是。。。你知道吗

filepath = "C:/Users/jmartini/Projects/assets/tool_source.cfg"

with open(filepath, 'r') as file:
    data = file.read().replace('\n', '').replace('\t', '')

    print data

Tags: 数据字符串代码文本jsonfalsedatasize
2条回答

你可以在这里使用re。你知道吗

import re
filepath = r"C:/Users/jmartini/Projects/rogue_presetsManager/assets/tool_leveleditormodule_source.cfg"
f=open(filepath, "r")
data = f.read()
print re.findall(r"presets\s*=\s*\{\s*([^}]*?)\s*}", data)

使用PyYaml获取所需的数据

pip install PyYaml

import yaml
def testjson():
    with open('data.json') as datafile:
        data = datafile.read().replace("\n", "").replace("=", ":")            
        print(yaml.load(data)["data"]["family"]["presets"])

我用你的数据得到这个结果

{'location': 'italy', 'size': 10, 'travelers': False}

相关问题 更多 >

    热门问题