首页 > 解决方案 > 如何将以下文件上传到 Python 中以从文件中获取特定结构?跟着正文看例子

问题描述

文件:

 0 3 3.0277

 0 14 4.8251

 1 6 2.8984

 2 3 4.5238

 2 12 1.9643

3 2 4.5238

我需要上传到 Python 并获得以下形式:

graph_latency = {'0':{'3':3.0277,'14':4.8251}

,'1':{'6':2.8984}

,'2':{'3':4.5238,'12':1.9362037455854288}

,'3':{'0':4.5238,'2':4.5238}}

我会很感激的,谢谢

标签: python

解决方案


您可以re用于解析文本:

import re
from collections import defaultdict
from pprint import pprint

data_from_file = """
 0 3 3.0277

 0 14 4.8251

 1 6 2.8984

 2 3 4.5238

 2 12 1.9643

3 2 4.5238"""

def transform_to_my_format(data):
    d = defaultdict(dict)
    for (i1, i2, i3) in re.findall(r'([\d\.]+)\s+([\d\.]+)\s+([\d\.]+)', data):
        d[i1].update({i2: float(i3)})
    return d

pprint(transform_to_my_format(data_from_file))

输出:

defaultdict(<class 'dict'>,
            {'0': {'14': 4.8251, '3': 3.0277},
             '1': {'6': 2.8984},
             '2': {'12': 1.9643, '3': 4.5238},
             '3': {'2': 4.5238}})

推荐阅读