【问题标题】:Python parsing GPRMC string with CSVPython 用 CSV 解析 GPRMC 字符串
【发布时间】:2011-08-02 16:02:02
【问题描述】:

我有 GPRMC 字符串,它由 12 个逗号分隔值组成。当我运行我的代码时,它实际上会拆分逗号,但它会将逗号分隔值中的每个字符打印在新行上 - 而不是将逗号之间的所有字符组合在一起。

例如:

>>> gprmc = "$GPRMC,1244.0,A,3111.334505,N,90729.3111898,W,1.2,,020811,,,A*55"
>>> gprmcReader = csv.reader(gprmc)
>>> for val in gprmcReader:
    print val


['$']
['G']
['P']
['R']
['M']
['C']
['', '']
['1']
['2']
['4']
['4']
['.']
['0']
['', '']
['A']
['', '']
['3']
['1']
['1']
['1']
['.']
['3']
['3']
['4']
['5']
['0']
['5']
['', '']

【问题讨论】:

    标签: python parsing csv


    【解决方案1】:

    试试这个:

    import csv
    reader = csv.reader(open(filename, 'r'))
    
    for row in reader:
        if row and row[0].strip() == '$GPRMC':
            for val in row:
                 print val
            print "_____________________"
    

    为了检查我的代码,我创建了包含一行的文件,其中包含以下文本:

    $GPRMC,135005.0,A,3526.351705,N,90729.337898,W,1.2,,020811,,,A*55
    

    执行我的代码打印我:

    $GPRMC
    135005.0
    A
    3526.351705
    N
    90729.337898
    W
    1.2
    
    020811
    
    
    A*55
    

    【讨论】:

    • 我不在乎剥离 GPRMC。我只想将每个逗号之间的所有字符组合在一起
    • 你是什么意思分组你能不能更新你的问题,向我们展示你真正想要的,因为我的代码给了我你在问题中提到的输出
    • @danes - 我在空行上添加了一项检查以进行采样
    • @danes - reader 的第一个参数是一个可迭代的 - 所以我的代码对文件非常有效,因为 open(...) 返回一个迭代器到文件行,但是如果需要解析 string(但我知道你为什么需要这个)就像在你的样本中你可以使用'csv.reader([gprmc])'
    • 请学习标准库。与其破解单行数据文件,不如使用 StringIO 返回围绕字符串的类似文件的对象包装器。
    猜你喜欢
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多