从文本文件中加载 python 中的字典
Load a dictionary in python from text file
我有一个文本文件 config.txt,其中的数据格式如下。每个键值都在一个新行中。
值是一个字符串列表。
key_inv_single = ['invoice']
key_inv_number = ['invoice number', 'invoice no', 'invoice #', 'invoice#']
key_inv_date = ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
我想将其反序列化为与文件同名的 python 字典。
{
key_inv_single : ['invoice']
key_inv_number : ['invoice number', 'invoice no', 'invoice #', 'invoice#']
key_inv_date : ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
}
试试下面的方法。
from ast import literal_eval
file = open("example.txt")
output = {}
for line in file:
your_line = line.strip().split('=')
key = your_line[0]
lst = literal_eval(your_line[1].strip())
output[key] = lst
输出
{
'key_inv_single ': ['invoice'],
'key_inv_number ': ['invoice number', 'invoice no', 'invoice #', 'invoice#'],
'key_inv_date ': ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
}
首先我们读取文件并将密钥分配给一个名为 key
的变量。然后我们使用 literal_eval
将值转换为实际的列表类型。然后我们将这些值添加到字典中。
当然这可以使用字典理解来完成,但它并不漂亮。
from ast import literal_eval
file = open("example.txt")
output = {line.strip().split('=')[0]:literal_eval(line.strip().split('=')[1].strip())for line in file}
我有一个文本文件 config.txt,其中的数据格式如下。每个键值都在一个新行中。 值是一个字符串列表。
key_inv_single = ['invoice']
key_inv_number = ['invoice number', 'invoice no', 'invoice #', 'invoice#']
key_inv_date = ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
我想将其反序列化为与文件同名的 python 字典。
{
key_inv_single : ['invoice']
key_inv_number : ['invoice number', 'invoice no', 'invoice #', 'invoice#']
key_inv_date : ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
}
试试下面的方法。
from ast import literal_eval
file = open("example.txt")
output = {}
for line in file:
your_line = line.strip().split('=')
key = your_line[0]
lst = literal_eval(your_line[1].strip())
output[key] = lst
输出
{
'key_inv_single ': ['invoice'],
'key_inv_number ': ['invoice number', 'invoice no', 'invoice #', 'invoice#'],
'key_inv_date ': ['invoice date', 'invoice dt', 'issue date', 'date of invoice', 'date of issue', 'issue dt', 'dt of issue']
}
首先我们读取文件并将密钥分配给一个名为 key
的变量。然后我们使用 literal_eval
将值转换为实际的列表类型。然后我们将这些值添加到字典中。
当然这可以使用字典理解来完成,但它并不漂亮。
from ast import literal_eval
file = open("example.txt")
output = {line.strip().split('=')[0]:literal_eval(line.strip().split('=')[1].strip())for line in file}