【发布时间】:2023-03-19 04:18:01
【问题描述】:
我以前从未使用过 Python,但由于另一种(专有)语言的一些限制,我尝试使用它来从 Web 服务中检索一些值并将它们以 json 格式返回给家庭自动化处理器。下面的相关代码部分返回:
[u'Name:London', u'Mode:Auto', u'Name:Ling', u'Mode:Away']
["Name:London", "Mode:Auto", "Name:Ling", "Mode:Away"]
…这不是有效的 json。我确信这是一个非常愚蠢的问题,但我在这里搜索过,但没有找到对我有帮助的答案。如果我遗漏了一些明显的东西,我深表歉意,但谁能告诉我我需要做什么来确保 json.dumps 命令以正确的格式输出数据?
CresData = []
for i in range(0, j):
r = requests.get('http://xxxxxx.com/WebAPI/emea/api/v1/location/installationInfo?userId=%s&includeTemperatureControlSystems=True' % UserID, headers=headers)
CresData.append("Name:" + r.json()[i]['locationInfo']['name'])
r = requests.get('http://xxxxxx.com/WebAPI/emea/api/v1/location/%s/status?includeTemperatureControlSystems=True' % r.json()[i]['locationInfo']['locationId'], headers = headers)
CresData.append('Mode:' + r.json()['gateways'][0]['temperatureControlSystems'][0]['systemModeStatus']['mode'])
Cres_json = json.dumps(CresData)
print CresData
print Cres_json
【问题讨论】:
-
第一个输出,带有
u''s,来自print CresData,是 Python 原生的列表数据结构。第二个输出来自print Cres_json,是有效的 JSON。太好了……不要print CresData……!? -
试试这个:Cres_json = json.dumps(json.loads(CresData))
-
@Shekhar
CresData是list,你不能这样json.loads。 -
@WayTooUnCool 你能告诉你预期的输出格式是什么吗?
-
是的@deceze 我现在明白了,使用 json.dumps() 也没有意义