如何从字节创建字典(Python)

时间:2018-11-20 15:47:23

标签: python dictionary-comprehension

我正在尝试通过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是包含以上所有内容的变量)。

有什么想法吗?

2 个答案:

答案 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