python - 从python中的字符串中提取特定模式
问题描述
我在一列 Dataframe 中有以下数据(包含大约 100 行)。
需要从 DF 中为每一行提取 CK 字符串 (CK-36799-1523333)。
- 注意:receipt_id 不是固定的。Ck 数据可能包含在一些不同的变量中。
数据:
{"currency":"US","Cost":129,"receipt_id":"CK-36799-1523333","af_customer_user_id":"33738413"}
{"currency":"INR","Cost":429,"receipt_id":"CK-33711-15293046","af_customer_user_id":"33738414"}
{"currency":"US","Cost":229,"receipt_id":"CK-36798-1523333","af_customer_user_id":"33738423"}
{"currency":"INR","Cost":829,"receipt_id":"CK-33716-152930456","af_customer_user_id":"33738214"}
{"currency":"INR","Cost":829,"order_id":"CK-33716-152930456","af_customer_user_id":"33738214"}
{"currency":"INR","Cost":829,"suborder_id":"CK-33716-152930456","af_customer_user_id":"33738214"}
结果
CK-36799-1523333
CK-33711-15293046
CK-36798-1523333
CK-33716-152930456
我尝试了 str.find('CK-') 函数,但没有得到预期的结果。需要建议
解决方案
尝试使用正则表达式
import re
...
for line in data:
res = re.findall(r"CK\-[0-9]+\-[0-9]+", line)
if len(res) != 0:
print(res[0])
推荐阅读
- javascript - 如何在 Go.js 节点上设置键值以创建链接
- python-3.x - 将一个变化的变量附加到一个列表中,然后比较它们
- c++ - 在执行 new 期间是否可以在构造函数中传递不同的参数?
- c# - System.IO.Compression.GZipStream 中的 Powershell 和 Powershell Core 差异
- javascript - 如何制作函数参数
- python - 如何将字典的键转换为单列熊猫数据框?
- visual-studio-code - 如何设置 Visual Studio Code 来编译和运行 C 代码?
- ansible - Ansible 模板忽略行尾差异 LF CRLF。插件?
- c# - 使用 TopShelf 创建 Windows 服务时出现“错误 1053 服务未响应”错误
- c# - 为什么计数器在线程池中不起作用