【问题标题】:Parse defined variable in python to text file将python中定义的变量解析为文本文件
【发布时间】:2019-05-30 12:58:30
【问题描述】:

我是新手,如果有人可以寻求帮助。我已经能够使用定义的变量权重的输出创建一个文本文件。但它写入/打印/发布的数据比我需要的多得多。我拥有的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() 

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

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

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

这可能吗?

【问题讨论】:

  • 你的意思是你想要最近的测量?那你试过什么?
  • 打印权重准确显示 "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)])"

标签: python


【解决方案1】:

你可以改变:

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

给出了几个选项

【讨论】:

  • 这不是一个单一的值,是吗?这是一系列日期重量(可能以磅为单位)值。
  • @JohnGordon “粗体,斜体”字面上是一个单一的值,所以我从字面上理解它。他们似乎对单个输出很清楚?
  • @JohnGordon 哎呀,好吧,我们来自不同的角度。我并不打算暗示 OrderedDict 只包含一个值,只是我不确定为什么你会有这样的结构并且只想要第一个值。删除了该声明。
【解决方案2】:

看起来您正在从 client.get_measurements('Weight') 返回一个 dict,因此您可以将其转换为列表并索引以仅获取某个项目

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

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多