【问题标题】:Load list from file从文件加载列表
【发布时间】:2019-06-06 16:59:07
【问题描述】:

我在 txt 文件中有以下数据。需要将此数据加载到 Python 列表中。

[('Get RC for Apple for SmallCA for CAR?', {'entities': [ (11, 16, 'ORG'),(4, 6, 'Revenue'),(21, 28, 'Product'),(33, 36, 'Region')]}),('Get REVCCR for Apple for SmallCA for CAR?', {'entities': [ (15, 20, 'ORG'),(4, 10, 'REV'),(25, 32, 'Product'),(37, 40, 'CAA')]})]

1) 我已打开此文件并读取了所有数据,但它以字符串形式加载。
2) 尝试使用numpy 加载,但未按预期加载

data = set(w.rstrip() for w in open('../File/DataList.txt'))
print(data )

应该如下加载数据

data = [('Get RC for Apple for SmallCA for CAR?', {'entities': [ (11, 16, 'ORG'),(4, 6, 'Revenue'),(21, 28, 'Product'),(33, 36, 'Region')]}),('Get REVCCR for Apple for SmallCA for CAR?', {'entities': [ (15, 20, 'ORG'),(4, 10, 'REV'),(25, 32, 'Product'),(37, 40, 'CAA')]})]
print(data)

【问题讨论】:

标签: python-3.x


【解决方案1】:

您可以尝试使用 json 模块来执行此操作:

import json

with open("../File/DataList.txt", 'r') as f:
    data = json.load(f)

这通过将文件读取为 JSON 数据来工作。由于数据是列表的形式,它会将其存储为列表。您也可以使用相同的方法将对象数据保存到文件中。文件扩展名不是 .json 无关紧要,因为它只关心文件的内容。

我希望这会有所帮助:)

【讨论】:

    【解决方案2】:

    使用ast.literal_eval():

    import ast
    
    with open('../File/DataList.txt', 'r') as f:
        data = ast.literal_eval(f.read())
    
    >>> print(data)
    [('Get RC for Apple for SmallCA for CAR?', {'entities': [(11, 16, 'ORG'), (4, 6, 'Revenue'), (21, 28, 'Product'), (33, 36, 'Region')]}), ('Get REVCCR for Apple for SmallCA for CAR?', {'entities': [(15, 20, 'ORG'), (4, 10, 'REV'), (25, 32, 'Product'), (37, 40, 'CAA')]})]
    

    确认它是一个python列表:

    >>> type(data)
    <class 'list'>
    

    【讨论】:

    • 是的,它已按预期加载,感谢 Davedwards。
    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 2010-12-08
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多