我知道之前已经多次询问过,但我正在努力提取波纹线的中间部分
id1=({'children': '', 'edgeParameter': 1.0, 'id': 8, 'isOutOfDate': False, 'name': 'Datum pt-5', 'parents': '1&', 'path': 'unknown', 'sketch': 'unknown'})
我想要得到的结果是身份证号码。在这种情况下8。
output= 8
有什么想法吗?
答案 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
代替上述方法,但总是不鼓励!