如何从文本创建字典?

时间:2018-10-21 09:59:50

标签: python dictionary

我是一名python初学者,我有一些长文本格式设置为列表,我想编写一个提取重要信息并返回字典的函数。文本格式如下:

['text', 'text', 'text', 'text', 'text','text', 'text', 'Country Code', '11111', 'Country Location', 'North', 'Date', '18-03-1878', text','text','text', 'Population': '1289028', 'text', 'text', 'Government', 'Monarchy', 'text', 'text', 'Religion:', 'Catholic']

我需要特定的信息,例如国家/地区位置,国家/地区代码和日期。问题是,字符串的位置因文本而异,因此我需要一个函数,该函数首先在文本中找到此信息,将其作为字典的键,然后将文本上的下一个元素作为值。我希望得到这样的输出:

{"Country Code": "11111", 
 "Country Location": "North", 
 "Date": "18-03-1878"
 "Population": "1289028"  
 "Religion:" "Catholic"}

我非常感谢你们能提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您不关心效率并且键是一致的,则可以编写循环。

web-service

要处理列表中其他空单元格的问题,可以执行以下操作:

your_list = ['text', 'text', 'text', 'text', 'text','text', 'text', 'Country Code', '11111', 'Country Location', 'North', 'Date', '18-03-1878', 'text','text','text', 'Population', '1289028', 'text', 'text', 'Government', 'Monarchy', 'text', 'text', 'Religion:', 'Catholic']

our_dict = {}

for idx, word in enumerate(your_list):
    if 'Country Code' in word:
        our_dict['Country Code'] = your_list[idx+1]
    if 'Country Location' in word:
        our_dict['Country Location'] = your_list[idx+1]
    if 'Date' in word:
        our_dict['Date'] = your_list[idx+1]
    if 'Population' in word:
        our_dict['Population'] = your_list[idx+1]
    if 'Religion' in word:
        our_dict['Religion'] = your_list[idx+1]

更短的解决方案:

for idx, word in enumerate(your_list):
    if len(word.strip(' ')) > 0:
        if 'Country Code' in word:
            our_dict['Country Code'] = your_list[idx+1]
        if 'Country Location' in word:
            our_dict['Country Location'] = your_list[idx+1]
        if 'Date' in word:
            our_dict['Date'] = your_list[idx+1]
        if 'Population' in word:
            our_dict['Population'] = your_list[idx+1]
        if 'Religion' in word:
            our_dict['Religion'] = your_list[idx+1]