我的数据硬编码如下:
labels1 = [{'yMax': u'780.797833935018', 'xMax': u'587.5438596491229', 'xMin': u'366.84210526315786',
'yMin': u'613.9097472924188', 'id': '1', 'name': ''},
{'yMax': u'244.37184115523468', 'xMax': u'2096.6666666666665', 'xMin': u'2057.8947368421054',
'yMin': u'125.16606498194946', 'id': '2', 'name': ''}]
它在后面的步骤中按预期工作。
然而,我的数据是数千行,所以我必须格式化它,在txt文件上打印然后读取它的方法用来写它:
f.write('{{\'yMax\': u\'{}\', \'xMax\': u\'{}\', \'xMin\': u\'{}\',\'yMin\': u\'{}\', \'id\': \'{}\', \'name\': \'\'}}\n'.format(ymax, xmax, xmin, ymin,id))
然后我用来读取该文件的方法:
with open('1-0.txt') as f:
labels1 = f.readlines()
labels1 = [x.strip() for x in labels1]
print(labels1)
印刷品的输出是:
["{'yMax': u'156', 'xMax': u'4802', 'xMin': u'4770','yMin': u'141', 'id': '1', 'name': ''}","{'yMax': u'156', 'xMax': u'4956', 'xMin': u'4931','yMin': u'145', 'id': '4', 'name': ''}"]
(不是2的确切数据,但不应该重要),但是使用这些值时,当我使用上述代码读取它们时,它们只是不按预期在后续步骤中工作,为什么? !
答案 0 :(得分:2)
您实际上是在阅读和编写字典,使用json
模块可以很好地处理这些字典。
尝试这样的事情(我将labels1
重命名为data
只是因为):
import json
# Write the data to a file.
with open('1-0.txt', 'w') as file:
file.write(json.dumps(data))
# Read them back.
with open('1-0.txt', 'r') as file:
data = json.load(file)