将python中定义的变量解析为文本文件

时间:2019-01-03 22:33:25

标签: python

我是新来的,正在寻求帮助。我已经能够使用定义的可变权重的输出来创建文本文件。但是它写入/打印/发布的数据远远超出我的需要。我拥有的followin .py如下。

#!/usr/bin/python
import myfitnesspal
import requests
import lxml
import measurement
import six
import mock
import datetime

client = myfitnesspal.Client('username', 'password')

weight = client.get_measurements('Weight')
print weight

file = open("ChrisFitPal.txt", "w") 
file.write(repr(weight) + '\n' )
file.close() 

我得到的输出是文本文件中的以下内容,但我只希望它显示文本的片段

这是文本文件中显示的内容

OrderedDict([[(datetime.date(2019,1,2), 174.4 ),(datetime.date(2018,12,26),175.6), (datetime.date(2018,12,21),175.1),(datetime.date(2018,12,13),173.2),(datetime.date(2018,12,7),175.0)])

我只希望文本文件以粗体和斜体显示数字,而没有其他显示。因此输出将只是

174.4

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以更改:

file.write(repr(weight) + '\n' )

收件人:

file.write(a[next(iter(a))] + '\n' )

位置:

a = OrderedDict([(datetime.date(2019, 1, 2), 174.4), (datetime.date(2018, 12, 26), 175.6), (datetime.date(2018, 12, 21), 175.1), (datetime.date(2018, 12, 13), 173.2), (datetime.date(2018, 12, 7), 175.0)])

这为您提供了OrderedDict值的迭代器对象。您调用next使迭代器前进1,为您提供第一项的密钥。然后,您可以使用该键来访问针对该键存储的值。 Raymond Hettinger in this answer

提供了一些选项

答案 1 :(得分:0)

好像您要从client.get_measurements('Weight')返回一个字典,因此您可以将其投射到列表中并建立索引以仅获取特定项

d={'a':1,'b':2,'c':3}

list(d.items())
[('a', 1), ('b', 2), ('c', 3)]

list(d.items())[0]
('a', 1)

list(d.items())[0][1]
1