【问题标题】:Remove strings before certain character batch/python [duplicate]在某些字符批处理/python之前删除字符串[重复]
【发布时间】:2017-07-31 21:00:32
【问题描述】:

如何删除某些字符之前的字母?我需要从后面的字符串中删除每个字母,直到“[”字符并将输出重定向到 .csv 文件。

{"__metadata": {"uri": loremipsum etc [ {rest of the document}

【问题讨论】:

  • 您确定这是正确的解决方案吗?你的 json 文件损坏了吗?如果是这样,请使用str.partition("[")[0]
  • @Jean-François Fabre 好的,但我如何将它实现到代码中?我的意思是我有一个变量女巫存储字符串,我想截断这个变量。
  • 你为什么用batch-file标记你的问题?如果您需要批处理文件解决方案:假设字符串存储在变量%STRING% 中,使用%STRING:*[=[% 返回第一个[ 以及后面的所有内容...
  • @aschipfl 但是如何处理文件?
  • 什么意思?字符串存储在文件中,还是将结果写入文件,或两者兼而有之?

标签: python


【解决方案1】:

根据您提供的信息和必填字段,我建议如果您的 JSON 数据在文件中,那么您可以使用:

import json
data = {}
with open("path to json file") as f:
    data = json.loads(f.read())

或者如果你的数据存储在字符串中,那么你可以简单地做

data = json.loads("json data string")

现在您在 python 字典对象中有数据。现在您可以轻松地从对象中获取任何字段,例如从条目列表中的第一个对象获取字段“cuid”:

print data["entries"][0]["cuid"]

或者您可以循环访问条目列表并获取您需要的所有字段,例如

for entry in data["entries"]:
    print entry["cuid"]
    print entry["name"]
    print entry["id"]
    print entry["type"]

【讨论】:

  • 但是当字符串存储在变量中时它不起作用
  • 它正在工作,如您所见,我将它存储在一个变量中并对其进行了测试。从您问题中的代码来看,我猜您正在处理 dict 而不是 string ,是这样的吗?
  • 是的,你是对的,那我能做什么? error = 'dict' 对象没有属性 'find'
  • 好的,那么这取决于你想从字典中提取什么。 ?是您要提取的“uri”的值还是其他?
  • 分享您的 dict 或其结构,让我们知道您想从中提取什么,然后我可以提出解决方案。
【解决方案2】:

找到'['的位置并得到该位置之后的字符串

print s[s.find("[")+1:].strip()

样本输出:

{rest of the document}

希望对你有帮助!

【讨论】:

  • 不幸的是,我遇到了无效的语法错误。
  • 答案中没有语法错误。你能分享你得到错误的那一行吗!?
  • <--the colon 那是什么??
  • 我猜我们必须从dict中提取文本
【解决方案3】:

您可以从第一次出现的情况中分离出来,然后像这样:

>>> string = "Egg[spam:miam"
>>> string.split("[", 1)[1]
>>> spam:miam

>>> string = "Egg[spam:miam"
>>> string[string.index("[") + 1:]
>>> spam:miam

【讨论】:

  • 如果字符串中没有'[',这将抛出列表索引超出范围错误!
  • @Darkaird 但是当字符串存储在变量中时它不起作用
  • @lukesky 你是什么意思?无论它是否存储在变量中,它都应该可以工作。
  • @Darkaird AttributeError: 'dict' 对象没有属性 'split'
  • and NameError: name 'index' is not defined
猜你喜欢
  • 2014-03-26
  • 2011-03-14
  • 2016-08-30
  • 2017-02-26
  • 2013-01-05
  • 1970-01-01
  • 2022-01-22
  • 2016-03-05
  • 1970-01-01
相关资源
最近更新 更多