【问题标题】:python string to list [duplicate]要列出的python字符串[重复]
【发布时间】:2017-07-10 20:18:54
【问题描述】:

我想不出解决这个问题,即使它看起来很容易。

我在 txt 文件中有一个抓取的数据库,其中作者出版物的条目存储如下:

    ['Radoslav Bajus'],[['Economic Annals-XXI', '2016-06-21'], ['Actual Problems of Economics', '2016-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Accounting Reform in Transition and Developing Economies', '2009-12-01']]

我原本打算遍历列表。但是当我阅读 txt 时,我最终得到:

    "['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']]"

有没有办法读取引号和字符串格式? 我使用的代码如下:

    fh = open('results_publications.txt', encoding = "utf8")
    lst = []
    for line in fh:
        lst.append(line.strip())

UPD 好的,抱歉不清楚。我有一个 .txt 文件,其中有以下由 /n 分隔的条目(请参阅下面的三个条目)。

['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']]
['Radoslav Bajus'],[['Economic Annals-XXI', '2016-06-21'], ['Actual Problems of Economics', '2016-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Accounting Reform in Transition and Developing Economies', '2009-12-01']]
['Ľudmila Bartóková'],[['Journal of Applied Economic Sciences', '2016-03-01'], ['E a M: Ekonomie a Management', '2015-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01'], ['12th International Multidisciplinary Scientific GeoConference and EXPO - Modern Management of Mine Producing, Geology and Environmental Protection, SGEM 2012', '2012-12-01'], ['Journal of Applied Economic Sciences', '2012-12-01'], ['E a M: Ekonomie a Management', '2010-06-21']]

我想将这个 txt 文件读入列表,以便以后能够循环浏览它。但是当您阅读 txt 文件时,它会将每个条目转换为字符串并放入“”。我试图弄清楚如何将其转换为列表列表,而不是字符串列表。

【问题讨论】:

  • 你想要的最终结果是什么?
  • 您的输入文件已经包含引号和括号对吗?在这种情况下,只需在文件内容上使用ast.literal_eval
  • 抱歉不清楚。我已在问题中添加了更新。
  • @Tatiana 文件中的列表是否包含引号?
  • @zwer 不适用于这样的非 JSON。

标签: python python-2.7 list python-3.x


【解决方案1】:

您可以将字符串转换回 Python 数据,例如

import ast

data_string = "['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']]"

data = ast.literal_eval(data_string)

【讨论】:

  • 可能要提一下,data 是一个元组而不是一个列表
  • 试试这个代码更好list(eval(data_string))
  • @SaeedGharedag​​hi No.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 2020-01-27
相关资源
最近更新 更多