从此行中提取a值

时间:2015-06-05 11:15:18

标签: python python-2.6

我知道之前已经多次询问过,但我正在努力提取波纹线的中间部分

id1=({'children': '', 'edgeParameter': 1.0, 'id': 8, 'isOutOfDate': False, 'name': 'Datum pt-5', 'parents': '1&', 'path': 'unknown', 'sketch': 'unknown'})

我想要得到的结果是身份证号码。在这种情况下8。

output= 8

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

字典周围的括号在没有明确变成元组时什么都不做。尝试例如将print type((1))与打印print type((1, ))进行比较。然后只使用字典索引。 print id1['id']。这真的是最基本的python,所以如果这会给你带来问题,那就做一个基本的python课程,例如:在课程上。

如果您发布的内容实际上是一个python str并且它总是包含括号内的单个字典表示,包含键'id',那么一个非常简单的方法是将字符串切片到相应的值周围'id。

id1 = "({'children': '', 'edgeParameter': 1.0, 'id': 8, 'isOutOfDate': False, 'name': 'Datum pt-5', 'parents': '1&', 'path': 'unknown', 'sketch': 'unknown'})"
output = id1.split("'id':")[1].split(',')[0]

这本身就是一个包含任何前缀或尾随空格的字符串。如果您知道这总是一个整数,请执行output = int(output)。要打破它:

id1.split("'id':")  # creates a list with two elements: everything up until 'id' and everything after it
id1.split("'id':")[1]  # selects everything after 'id', the first thing being the desired value
id1.split("'id':")[1].split(',')  # breaks THAT string up where there are commas since the value ends with a comma.
id1.split("'id':")[1].split(',')[0]  # selects the value

也可以使用eval代替上述方法,但总是不鼓励!