我是新来的,正在寻求帮助。我已经能够使用定义的可变权重的输出来创建文本文件。但是它写入/打印/发布的数据远远超出我的需要。我拥有的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
这可能吗?
答案 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