Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从字节创建字典(Python)_Python_Dictionary Comprehension - Fatal编程技术网

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

如何从字节创建字典(Python),python,dictionary-comprehension,Python,Dictionary Comprehension,我试图从一个API调用创建一个列表,数据如下所示,我相信是字节 以下内容不敏感: [{“Udid”:“0000000 4324234235”,“序列号”:“SN42A32A34”,“MACAAddress”:“00127F287220”,“Imei”:“EasId”:“443243342253446FE9”,“资产编号”:“DeviceFriendlyName”:“00:16:7F:18:7C:B0”,“LocationGroupId”:{“Id”:{“值”:544},“Uuid”:“36424

我试图从一个API调用创建一个列表,数据如下所示,我相信是字节

以下内容不敏感:

[{“Udid”:“0000000 4324234235”,“序列号”:“SN42A32A34”,“MACAAddress”:“00127F287220”,“Imei”:“EasId”:“443243342253446FE9”,“资产编号”:“DeviceFriendlyName”:“00:16:7F:18:7C:B0”,“LocationGroupId”:{“Id”:{“值”:544},“Uuid”:“364243f-97342b-4287-9333-b942442313”,“名称”:“Location2”;“LocationName”:“LocationName”:“LocationGroupId”:“LocationID”:“Location2”,“UserId”:“LocationGroupId”:“{,“Uuid”:“364243f-97342b-4287-9333-b942442313”,“名称”:“MDM注册”},“用户名”:“注册123”,“用户电子邮件地址”:enroll123@nitro.com“,”所有权“:”C“,”PlatformId“:{”Id“:{”Value“:”10},“名称“:”PalmPhone“}”,平台“:”PalmPhone“,”ModelId“:{”Id“:{”Id“:{”Value“:”44},“名称“:”PalmPhone-X101Nitro“,”模型“:”PalmPhone-X101Nitro“,”操作系统“:”1.7.4444444”,“电话号码”:“LastSeen”:“2018-11-11T07:46:57.257”,“注册状态”:“注册”,“合规状态”:“合规”,“折衷状态”:false,“LastEnrolledOn”:“2018-11-09T18:26:03.610”,“LastComplianceCheckOn”:“0001-01-01T00:00:00.000”,“最后折衷检查”:“2018-06-13T19:28:22.933”,“IsSupervised”:false,“DeviceMCC{“SIMMCC”:“当前MCC”:”虚拟内存:0,“IsDeviceDendEnabled”:false,“IsDeviceLocatorEnabled”:false,“IsCloudBackupEnabled”:false,“IsActivationLockEnabled”:false,“IsNetworkTethered”:false,“IsRoaming”:false,“SystemIntegrityProtectionEnabled”:false,“ProcessorArchitecture”:0,“Id”:{“Value”:140},“Uuid”:“364243f97342b42879333-b942442313”

然后它以相同的格式重复,只是数据不同。我试着按照
(ast.literal\u eval(b“myList”))
(myList是保存上述所有内容的变量)的思路做一些事情


有什么想法吗?

如果返回的字符串是有效的json,您可以这样处理它:

import json
x = json.loads(myList)
x
将包含API调用返回的字典列表


ast.literal\u eval(myList)
也应该可以工作-如果myList实际上是您指定的类型
bytes
,请尝试
ast.literal\u eval(myList.decode('UTF-8'))

API返回的问题是,它是一个列表,来自第一个元素的字典包含一些字段,如“false”,但它们不是用“”作为字符串封装的,python只识别大写为F的“False”

因此,您应该首先将响应转换为文本,然后将
false
替换为
false
,最后一点是使用json.loads在代码上使用json:(其中
api\u return
是您收到的内容)


您刚才描述的文本是JSON。API调用通常会返回JSON。您首先需要对其进行反序列化,然后我相信它会变成一个列表,您可以从中进行操作。捕捉良好。如果这是原因,OP可能应该小心替换。基本上是一个正则表达式,确保它不是字符串的一部分。但是…我会ld希望python端json模块了解false/false事实上正则表达式解决方案会更安全。json模块不能很好地处理大小写敏感度@JLPeyret!@RyanAdams可以判断它是否合适,如果是肯定的话,我可以更新代码以添加正则表达式解决方案
response = str(api_return[0])
response.replace("false", "False")
response_json = json.loads(response)