저는 현재 파이썬의 기초를 배우고 있습니다. 몇 가지 간단한 데이터베이스 관련 Python 스크립트를 작성해야했습니다. 내 SELECT
스크립트에서 JSON으로 작업하는 데 문제가 있습니다.json.loads 서식 지정 문제
필요한 데이터 형식은 다음과 같습니다.
{
"Data": {
"name1": "val1",
"name2": "val2",
"name3": "val3",
"name4": "val4"
},
"IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
}
데이터 자체는 DB 내에 JSON으로 저장되므로 1 필드입니다. 데이터는 다음과 같이 검색됩니다.
try:
db = MySQLdb.connect(dbhost, dbuser, dbpass, sqldb)
except:
msg = "Connect error"
else:
cursor = db.cursor()
sql = "SELECT JSON_DATA FROM TEST_DB_TABLE WHERE DATA_GUID= %s"
args = "TestData"
cursor.execute(sql,args)
for row in curosr.fetchall() : jsondata = row[0]
finally:
db.close()
이렇게하면 i print(jsondata)
;
{
"name1": "val1",
"name2": "val2",
"name3": "val3",
"name4": "val4"
}
는 나는 내가 나머지 데이터를 형성하고 json_encode
와 함께 마무리 배열을 사용하는 기대 PHP를 사용하고 있습니다. 필자는 Python의 배열에 해당하는 것을 사전이라고 생각하므로 여기에서 사용해야하는 것 같습니다. 나는 이것을 결국 시도했다.
data = json.loads(jsondata)
FinOut = {"Data": data, "IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
print(FinOut)
... 여기서 문제는 잘못된 JSON을 반환한다는 것입니다.
{'Data': {u'name1': u'val1', u'name2': u'val2', u'name3': u'val3', u'name4': u'val4'}, 'IMPORTANT_NOTE': 'This data is from the test database - used for demonstration only!'}
내가 대신 json.load(jsondata)
을 시도했지만 다음 cgitb
오류 (나는 .load
때문에 가정보고하는 파일 기반 동등하다, 나는 출력에의 데이터를이 문제를 해결하는 방법에
<type 'exceptions.AttributeError'>: 'str' object has no attribute 'read'
args = ("'str' object has no attribute 'read'",)
message = "'str' object has no attribute 'read'"
어떤 아이디어 형식과 비슷합니까?