我有一个我无法解决的错误..你有建议吗?
[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');
答案 0 :(得分:1)
显然json.load(data_file)["Person"]
已经是一个列表。并且在Python列表类型中没有任何values()
方法。这实质上是错误消息告诉您的内容。 VS不了解数据结构,因此无法捕获此错误。
尝试将第33行更改为:
data_ls = json.load(data_file)["Person"]