AttributeError:“列表”对象没有属性“值” Centos7 Python

时间:2020-05-10 17:26:37

标签: python json centos

我有一个我无法解决的错误..你有建议吗?

[root@leemi wwwroot]# python3 DateRead.py
Traceback (most recent call last):
  File "DateRead.py", line 33, in <module>
    data_ls = json.load(data_file)["Person"].values()
AttributeError: 'list' object has no attribute 'values'

在VS中创建的代码。

import os
import datetime
import psycopg2
import inspect
import json
import io
from collections import OrderedDict

mtime = os.path.getmtime("data.json")
with io.open("saveDate.txt", "r", encoding="utf8") as date_read:
    ttime = date_read.read()

if str(mtime) == ttime:
    with io.open('data.json', "r", encoding="utf-8") as data_file:    
        data_ls = json.load(data_file)["Person"].values()
    # datas1 = OrderedDict(sorted(data_ls["Person"].itemsc(), key=lambda t: t[0]))3
    # print(datas1)
    datas = list(data_ls)
    # datas2 = [str(datas["PersonSex"]), str(datas["PersonAge"]), str(datas["PersonDate"])]
    print(datas[0],datas[1],datas[2])

    with io.open("saveDate.txt","w",encoding="utf-8") as date_save:
        date_save.write("{0}".format(mtime))
    print("INSERT INTO public.\"DbPerson\"(\"PersonSex\", \"PersonAge\", \"PersonDate\") VALUES ('{0}',{1},'{2}');".format(datas[0], datas[1], datas[2]))

VS没有错误。但是,在Centos 7中运行时会发生错误。由于我是Python的初学者,因此我搜索了很多东西,但无法解决它们。请帮助我。

结果

F 40 2020-05-01 8:10:00
INSERT INTO public."DbPerson"("PersonSex", "PersonAge", "PersonDate") VALUES ('F',40,'2020-05-01 8:10:00');

1 个答案:

答案 0 :(得分:1)

显然json.load(data_file)["Person"]已经是一个列表。并且在Python列表类型中没有任何values()方法。这实质上是错误消息告诉您的内容。 VS不了解数据结构,因此无法捕获此错误。

尝试将第33行更改为:

data_ls = json.load(data_file)["Person"]