V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ideaplat
V2EX  ›  Python

这种格式怎么解,有木有现成的库?

  •  
  •   ideaplat · 2016-05-30 11:06:59 +08:00 · 3425 次点击
    这是一个创建于 3101 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Map(2000ZY -> , 602001 -> 31, 202002 -> , 20200I -> 302000, 20200D -> 302000, 602008 -> 0, 20200E -> 16, 202006 -> , 20200j -> 20200j, 20200m -> , 602002 -> 0, 20200a -> , 20200J -> 302000, 20200F -> 302001, 20200n -> 302000, 202007 -> 202007, 202001 -> 202001, 20200l -> 20200l, 602007 -> 0, 202004 -> , 602003 -> 0, 202008 -> , 20200o -> 302000, 2000ZX -> , 20200G -> 0, 20200k -> , 2000ZZ -> , 602004 -> 302000, 202009 -> 202009, 202003 -> 202003, 202005 -> 202005, 20200H -> 302000)
    8 条回复    2016-05-30 17:39:53 +08:00
    CSDreamer
        1
    CSDreamer  
       2016-05-30 11:26:57 +08:00   ❤️ 1
    Scala 风格的 Map 写法
    ideaplat
        2
    ideaplat  
    OP
       2016-05-30 11:31:02 +08:00   ❤️ 1
    用 python 怎么解呢,
    yangtukun1412
        3
    yangtukun1412  
       2016-05-30 11:40:01 +08:00   ❤️ 1
    dict(re.findall(r'(\w+)\s*\-\>\s*(\w*)', raw))
    deangl
        4
    deangl  
       2016-05-30 11:44:33 +08:00   ❤️ 2
    dict([v.split(' -> ') for v in raw.split(',')])
    ideaplat
        5
    ideaplat  
    OP
       2016-05-30 12:39:56 +08:00   ❤️ 1
    如何将该格式存成 csv ?
    yangtukun1412
        6
    yangtukun1412  
       2016-05-30 13:11:29 +08:00   ❤️ 1
    ideaplat
        7
    ideaplat  
    OP
       2016-05-30 14:07:51 +08:00   ❤️ 1
    import csv
    import json

    fieldnames = ['rq',' 2000ZZ', ' 2000ZX', ' 202007', ' 202006', ' 202005', ' 202004', ' 202003', ' 202002', ' 202001', ' 202009', ' 202008', ' 20200G', ' 20200F', ' 20200E', ' 20200D', 'Map(2000ZY', ' 20200J', ' 20200I', ' 20200H', ' 602008', ' 602003', ' 602002', ' 602001', ' 602007', ' 602004', ' 20200a', ' 20200o', ' 20200n', ' 20200m', ' 20200l', ' 20200k', ' 20200j']

    csv_file = open('0007A8A74A3A.csv', 'wb')
    writer = csv.DictWriter(csv_file,fieldnames=fieldnames)

    writer.writeheader()

    with open("0007A8A74A3A.tsv") as tsv:
    for line in csv.reader(tsv, dialect="excel-tab"):

    res = dict([v.split(' -> ') for v in line[5].split(',')])

    rq = {'rq':line[1]}
    res.update(rq)
    writer.writerow(res)
    JamesRuan
        8
    JamesRuan  
       2016-05-30 17:39:53 +08:00
    这种都是练手级别的习题啊,直接拿来当面试题就好了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1951 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:20 · PVG 00:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.