我正在尝试通过API调用创建列表,数据以这种方式输出,我相信是字节。
下面没有敏感内容:
[{“ Udid”:“ 00000004324234235”,“ SerialNumber”:“ SN42A32A34”,“ MacAddress”:“ 00127F287220”,“ Imei”:“”,“ EasId”:“ 443243434225346FE9”,“ AssetNumber”:“” ,“ DeviceFriendlyName”:“ 00:16:7F:18:7C:B0”,“ LocationGroupId”:{“ Id”:{“ Value”:544},“ Uuid”:“ 364243f-97342b-4287-9333-b942442313 “,”名称“:” Location2“},” LocationGroupName“:” Location2“,” UserId“:{” Id“:{” Value“:5111},” Uuid“:” 364243f-97342b-4287-9333-b942442313 “,”名称“:” MDM注册“},”用户名“:” Enroll123“,” UserEmailAddress“:” enroll123@nitro.com“,”所有权“:” C“,” PlatformId“:{” Id“:{ “ Value”:10},“ Name”:“ PalmPhone”},“ Platform”:“ PalmPhone”,“ ModelId”:{“ Id”:{“ Value”:44},“ Name”:“ PalmPhone-X101Nitro” },“ Model”:“ PalmPhone-X101Nitro”,“ OperatingSystem”:“ 1.7.44444”,“ PhoneNumber”:“”,“ LastSeen”:“ 2018-11-11T07:46:57.257”,“ EnrollmentStatus”:“已注册”,“ ComplianceStatus”:“合规”,“ CompromisedStatus”:false,“ LastEnrolledOn”:“ 2018-11-09T18:26:03.610”,“ LastComplianceCheckOn”:“ 0001-01-01T00:00:00.000”,“ LastCompromisedCheckOn“:” 2018-06-13T19:28:22.933“,” IsSupervised“:false ,“ DeviceMCC”:{“ SIMMCC”:“”,“ CurrentMCC”:“”},“ VirtualMemory”:0,“ IsDeviceDNDEnabled”:false,“ IsDeviceLocatorEnabled”:false,“ IsCloudBackupEnabled”:false,“ IsActivationLockEnabled”:false ,“ IsNetworkTethered”:false,“ IsRoaming”:false,“ SystemIntegrityProtectionEnabled”:false,“ ProcessorArchitecture”:0,“ Id”:{“ Value”:140},“ Uuid”:“ 364243f97342b42879333-b942442313”},>
然后以相同的格式重复不同的数据。我尝试按照(ast.literal_eval(b"myList"))
的方式进行操作(myList是包含以上所有内容的变量)。
有什么想法吗?
答案 0 :(得分:2)
如果返回的字符串是有效的json,则可以像这样处理它:
import json
x = json.loads(myList)
x
将包含API调用返回的词典列表。
ast.literal_eval(myList)
也应该起作用-如果myList实际上像您指示的那样是bytes
类型,请尝试ast.literal_eval(myList.decode('UTF-8'))
答案 1 :(得分:2)
API返回的问题是它是一个列表,并且字典从第一个元素开始,包含一些字段为“ false”,但未将“”封装为字符串,而python只识别“ False”,的首字母为F。
因此,您应该首先将响应转换为文本,然后将false
替换为False
,最后一点是使用json.loads在代码上使用Json :(其中{{1} }就是您收到的东西
api_return