使用pandas.Read\u csv从python中具有分隔符的csv读取内容

使用pandas.Read\u csv从python中具有分隔符的csv读取内容,python,python-3.x,Python,Python 3.x,我想从csv文件中读取内容。以下是该文件的格式: SOURCE_TYPE|SOURCE_QUERY|TARGET_QUERY HIVE|SELECT * FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY USR_ID ORDER BY snap_logmarker DESC ) AS row_num FROM ( SELECT USR_ID,snap_logmarker FROM ARCHIVE_

我想从csv文件中读取内容。以下是该文件的格式:

SOURCE_TYPE|SOURCE_QUERY|TARGET_QUERY
HIVE|SELECT *
FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY USR_ID
       ORDER BY snap_logmarker DESC ) AS row_num  
       FROM   ( SELECT USR_ID,snap_logmarker
         FROM  ARCHIVE_db.a_cust_auth  
         WHERE (CONCAT(snapshot_year_month, snapshot_day) = '20171231')   
         UNION ALL   
         SELECT USR_ID,snap_logmarker FROM ( SELECT *,ROW_NUMBER() OVER (PARTITION BY USR_ID ORDER BY snap_logmarker desc,snap_intentseq desc ) AS row_num 
         FROM staging_db.a_cust_auth   
         WHERE snapshot_year_month ='201801') C
                                WHERE C.row_num = 1
                   ) B
) A 
 WHERE A.row_num = 1
|
select * from db.cust_auth where concat(snapshot_year_month,snapshot_day)='20180131'
我想分离字符串列表中的所有值,使用的分隔符是“|”,即

源类型=蜂巢

SOURCE|QUERY=完成子查询直到|分隔符

目标\查询=上次选择查询

使用pandas.read_csv,无法解析此文件结构


如何分离值并存储在列表中?

如果我理解了您的问题,您可以加载文件,但不能解析它? 您可以将文件内容存储在变量中,然后使用
split
方法分割它,因为您有一个确定的分隔符

list_str = your_file_content.split("|")
它将返回文件中包含所有差异字符串的列表

此函数有一些示例:
CSV文件由包含字段的记录组成。字段分隔符通常是逗号(
),但可以是任何字符,记录分隔符通常位于行的末尾(
“\r\n”
)。在字段中嵌入分隔符(包括记录分隔符)通常要求字段用引号括起来

您的文件似乎只包含一条记录,行尾嵌入在没有引号的字段中:它不是CSV文件,不应该是进程,而是一个需要CSV文件的工具


只需阅读并在
|

上拆分它,这是一个csv文件,看起来不是逗号分隔的吗me@aws_apprentice-是的,这不是csv的标准格式,但这是我收到文件的唯一格式。这是无法修改的。我只想在一个字符串中为源类型、源查询和目标查询提供单独的值。使用split…输出将是源类型、源查询、目标查询\nHIVE |。。。但我希望它在单独的字段中设置蜂巢,并在一个字段中设置从select到|分隔符。每行后面都有一个换行符。很抱歉,我的回答太晚了。。。但是,如果有人有类似的问题,我不确定我是否理解您的期望,但是,您可以阅读整个文件,然后用“|”拆分(它将允许\n,如果是问题,您可以将其删除)。完成后,您可以从第三个索引开始迭代数组,使用模3可以计算每个字段