从文件加载列表

时间:2019-01-11 18:31:04

标签: python-3.x

我在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)

2 个答案:

答案 0 :(得分:1)

使用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'>

答案 1 :(得分:0)

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

import json

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

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

我希望这会有所帮助:)