簡體   English   中英

使用pandas.read_csv在python中從具有分隔符的csv中讀取內容

[英]Read content from csv having delimiter in python using pandas.read_csv

我想從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_TYPE =嗨

SOURCE_QUERY =完成子查詢直到| 分隔器

TARGET_QUERY =上次選擇查詢

使用pandas.read_csv,無法分析此文件結構。

如何分隔值並存儲在列表中?

如果我了解您的問題,您可以加載文件但不能解析它? 您可以將文件內容存儲在變量中,然后在確定分隔符的情況下使用split方法對其進行split

list_str = your_file_content.split("|")

它將返回一個列表,其中包含文件中所有不同的字符串。

此功能有一些示例: https : //www.pythonforbeginners.com/dictionary/python-split

CSV文件由包含字段的記錄組成。 字段分隔符通常是逗號( , ),但可以是任何字符,而記錄分隔符通常位於行尾( '\\r\\n' )。 在字段中嵌入分隔符(包括記錄分隔符)通常需要將該字段括在引號中。

您的文件似乎包含一個記錄,行尾嵌入字段中且沒有引號:它不是CSV文件,不應是進程,而應是帶有csv文件的工具。

只需閱讀並拆分|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM