regex 如何使用Python从没有新行的文本文件中提取多个字典?

5hcedyr0  于 2023-05-01  发布在  Python
关注(0)|答案(1)|浏览(107)

我有一个包含以下数据类型的文本文件:

{'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}}, {'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}},
{'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}}

请注意,引号(' ')也出现在文本文件中。每个字典由逗号分隔,并且文件中没有换行符(\n)。
我想从文本文件中提取这些作为字典列表。
我对Python非常陌生,虽然使用readlines()函数将整个文本文件作为单个变量读取,然后使用正则表达式的模式匹配将它们分开。
我无法找出一个可靠的模式来使用正则表达式。
最终,它应该看起来像这样:

extracted_list = [{'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}}, {'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}},
{'key1':'data','key2':'data','key3':'data','key4':{'subkey1':'data','subkey2':'data'}}]

for dict in extracted_list:
      print(dict['key1'])     #should print 'data under key1'
      print(dict['key4'])     #should print 'sub-dictionary under key4'
m1m5dgzv

m1m5dgzv1#

我不确定这是否是你的意思,但如果你想从文本文件中提取dicts,那么你可以这样做:

import json

extracted_list = []

with open("dicts_file") as f:
    for line in f.readlines():
        extracted_list.append(json.loads(line))

json.loads()从json字符串创建字典(或列表)。然后存储在extracted_list中。
希望这能帮上忙。

相关问题