请教一个 Python 中字段切割问题

2020-02-11 23:02:34 +08:00
 huyinjie

想要将如下这个字段按照逗号分离,但是在某些字符串中带有逗号,希望能不要分离字符串中的逗号

6898,"RAAF Williams, Laverton Base","Laverton","Australia",\N,"YLVT",-37.86360168457031,144.74600219726562,18,10,"O","Australia/Hobart","airport","OurAirports"

希望能分离成如下形式

6898

RAAF Williams, Laverton Base

Laverton

Australia

直接使用 Python 中的 split 方法会将"RAAF Williams"与"Laverton Base"分离开,请问有什么办法可以避免

3404 次点击
所在节点    Python
27 条回复
chenstack
2020-02-12 12:53:31 +08:00
@qwjhb @retanoj 安全地解析字符串成 Python 对象可以用 ast.literal_eval,遇到运算符会抛出异常


import ast
ast.literal_eval('6898,"RAAF Williams, Laverton Base","Laverton","Australia","N","YLVT",-37.86360168457031,144.74600219726562,18,10,"O","Australia/Hobart","airport","OurAirports"')
(6898, 'RAAF Williams, Laverton Base', 'Laverton', 'Australia', 'YLVT', -37.86360168457031, 144.74600219726562, 18, 10, 'O', 'Australia/Hobart', 'airport', 'OurAirports')
huyinjie
2020-02-12 15:04:56 +08:00
@Akkuman #15 感谢 可以使用
huyinjie
2020-02-12 15:48:21 +08:00
@smallpython #19 感谢 这种相当于 C 语言中 getchar 最初想到这个方法就是感觉麻烦些
huyinjie
2020-02-12 15:56:31 +08:00
@chenstack #21
N 两边没有双引号 ast.literal_eval 无法解析
huyinjie
2020-02-12 18:41:13 +08:00
@levelworm #17 是的 不去掉会报错 可以使用 replace 成"\N"的方法曲线解决==
levelworm
2020-02-13 02:33:26 +08:00
@huyinjie 多谢,这样要不写个简单的 parser 吧?虽然我觉得上面的一些解法更简单。
larsenlouis
2020-02-14 13:19:16 +08:00
pandas 用条件扩充字段

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/643884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX