【问题标题】:Converting str items in a dictionary to int and converting datetime.datetime variable to int将字典中的 str 项转换为 int 并将 datetime.datetime 变量转换为 int
【发布时间】:2019-12-03 20:39:33
【问题描述】:

我知道这个 for 循环看起来像这样:

for i in my_dict[hostname]:
    try:
        if i == '':
            except ValueError:
                pass
            i = int(i)
            print(type(i))

它给了我一个语法错误,我不确定在哪里或为什么。

【问题讨论】:

  • 这本词典无效。要么你错过了其他键,要么分数应该是一个列表。
  • my_dict['scores'] = [int(score) for score in my_dict['scores'] 如果 'scores' 是一个列表,则为单行。至于日期时间,请d.timestamp()
  • for i in my_dict[hostname]: try: if i == '': except ValueError: pass i = int(i) print(type(i)) 有错误在这种情况下和我不确定它是什么。
  • 这与您在问题中发布的内容完全不同。

标签: python dictionary type-conversion epoch


【解决方案1】:

不确定我是否真的理解你的目的,但在 Python 中转换一个 int 字符串是直截了当的:

>>> s = '123'
>>> int(s)
123

要将日期时间转换为 int,您可以将其转换为 timestamp,然后再转换为 int

timestamp = datetime.timestamp(d)

【讨论】:

    【解决方案2】:

    时间戳已经是一个可以操作的数字了:

    >>> d.timestamp()
    1562855175.285529
    >>> d.timestamp() - 1
    1562855174.285529
    

    就像@EuclidianHike 所说,您可以使用int("str") 轻松地将str 转换为int

    【讨论】:

      【解决方案3】:

      通过执行以下操作创建包含“分数”值但以整数形式的第二个列表:

      int_scores = []
      
      for i in my_dict['scores']:
      
      int_s = int(i)
      
      int_scores.append(int_s) #Add indention as I cannot do it here on stackoverflow
      

      【讨论】:

        猜你喜欢
        • 2015-07-27
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 1970-01-01
        • 2019-06-18
        • 2020-01-05
        • 2019-07-24
        相关资源
        最近更新 更多