python-3.x - 从文件python中检索列表类型的多个字典
问题描述
在将列表传递给文件后,我想检索列表的字典。但是当我将其写入文本时,我会丢失列表内容的格式。如何再次恢复以字典类型格式化的数据?
首先,我创建了一个包含两个维度的列表。然后我用空字典和带值的字典填充值。
dataValue = {
'telefone': '6298855663311',
'nome': '',
'pagamento': 'Boleto',
'embarque': '16:00'
}
emptyDi = {}
assentosMatriz2D = [
[dataValue, emptyDi, emptyDi, emptyDi, emptyDi],
[emptyDi, emptyDi, emptyDi, emptyDi, emptyDi],
[emptyDi, emptyDi, dataValue, emptyDi, emptyDi]
]
print(assentosMatriz2D[0][1])
with open('listfile.txt', 'w') as f:
f.writelines("%s\n" % place for place in assentosMatriz2D)
# define empty list
linhas = []
# open file and read the content in a list
with open('listfile.txt', 'r') as f:
filecontents = f.readlines()
for line in filecontents:
# remove linebreak which is the last character of the string
current_place = line[:-1]
# add item to the list
linhas.append(current_place)
create_lt = linhas[1]
print(create_lt[0][0])
print(f'the firt line {create_lt}')
output:::::
>>{}
>>[
>>the firt line [{}, {}, {}, {}, {}]
解决方案
要检索作为字符串传递的 dict,您可以使用eval
( current_place = eval(line[:-1])
) 但由于它可以运行代码,因此非常不安全,如果您不信任来源,请不要这样做。最常见的存储dicts的方式是json
import json
with open('listfile.txt', 'w') as f:
json.dump(assentosMatriz2D, f)
# open file and read the content in a list
with open('listfile.txt', 'r') as f:
assentosMatriz2D = json.load(f)
推荐阅读
- web3js - 如何在 Solana(客户端,JS)中获取对以前创建的令牌的引用
- python - python无法识别文件夹
- python-3.x - 姜戈;更新产品但保留购买历史
- c++ - 为什么 std::apply 使用函数模板失败,但没有使用带有显式模板参数列表的 lambda 表达式?
- redis - 如何在 Ray 中获取有关 GCS Redis 内容的信息?
- encoding - SQL 不允许将数据添加到外键中
- html - 当里面的元素很大时,div的填充变大
- javascript - 我无法影响“拒绝执行内联事件处理程序”错误的 DOM 原因。-Chrome 扩展
- html - 文字颜色在 safari 中不起作用,我没有 macOS 来修复它你能帮我吗
- django - 没有“授权”标头,如何访问授权标头?姜戈