Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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 从UTF-8编码的字节字符串读取JSON数据_Python_Json_Python 3.x_Python 3.6 - Fatal编程技术网

Python 从UTF-8编码的字节字符串读取JSON数据

Python 从UTF-8编码的字节字符串读取JSON数据,python,json,python-3.x,python-3.6,Python,Json,Python 3.x,Python 3.6,我有一个脚本,它将JSON UTF-8编码的字节字符串发送到套接字。github项目:。现在我正在编写需要读取传入数据的python脚本。现在我可以接收数据并将其打印到终端。使用以下脚本: 输出: data = '{"Current": 117.42609405517578, "Accelerometer": -5.394751071929932, "SpeedometerKPH": 67.12493133544922, "Ammeter": 117.3575210571289, "Amp":

我有一个脚本,它将JSON UTF-8编码的字节字符串发送到套接字。github项目:。现在我正在编写需要读取传入数据的python脚本。现在我可以接收数据并将其打印到终端。使用以下脚本:

输出:

data = '{"Current": 117.42609405517578, "Accelerometer": -5.394751071929932, "SpeedometerKPH": 67.12493133544922, "Ammeter": 117.3575210571289, "Amp": 117.35590362548828, "Acceleration": -0.03285316377878189, "TractiveEffort": -5.394751071929932, "Effort": 48.72163772583008, "RawTargetDistance": 3993.927734375, "TargetDistanceBar": 0.9777777791023254, "TargetDistanceDigits100": -1.0, "TargetDistanceDigits1000": -1.0}'
问题是我找不到如何读取JSON数组。例如,读取安培计并将其值117.357521057289返回到新变量

在变量数据中接收所有数据

我现在拥有的代码:

decodedjson = data.decode('utf-8')
dumpedjson = json.dumps(decodedjson)
loadedjson = json.loads(dumpedjson)
你能帮帮我吗

您正在编码为JSON,然后再次解码。不编码,请删除第二行:

decodedjson = data.decode('utf-8')
loadedjson = json.loads(decodedjson)
如果您使用的是Python 3.6或更高版本,实际上不必从UTF-8解码,因为json.loads函数知道如何直接处理UTF编码的json数据。这同样适用于Python 2:

loadedjson = json.loads(data)
使用Python 3.7的演示:

>>> data = b'{"Current": 117.42609405517578, "Accelerometer": -5.394751071929932, "SpeedometerKPH": 67.12493133544922, "Ammeter": 117.3575210571289, "Amp": 117.35590362548828, "Acceleration": -0.03285316377878189, "TractiveEffort": -5.394751071929932, "Effort": 48.72163772583008, "RawTargetDistance": 3993.927734375, "TargetDistanceBar": 0.9777777791023254, "TargetDistanceDigits100": -1.0, "TargetDistanceDigits1000": -1.0}'
>>> loadedjson = json.loads(data)
>>> loadedjson['Ammeter']
117.3575210571289
您正在编码为JSON,然后再次解码。不编码,请删除第二行:

decodedjson = data.decode('utf-8')
loadedjson = json.loads(decodedjson)
如果您使用的是Python 3.6或更高版本,实际上不必从UTF-8解码,因为json.loads函数知道如何直接处理UTF编码的json数据。这同样适用于Python 2:

loadedjson = json.loads(data)
使用Python 3.7的演示:

>>> data = b'{"Current": 117.42609405517578, "Accelerometer": -5.394751071929932, "SpeedometerKPH": 67.12493133544922, "Ammeter": 117.3575210571289, "Amp": 117.35590362548828, "Acceleration": -0.03285316377878189, "TractiveEffort": -5.394751071929932, "Effort": 48.72163772583008, "RawTargetDistance": 3993.927734375, "TargetDistanceBar": 0.9777777791023254, "TargetDistanceDigits100": -1.0, "TargetDistanceDigits1000": -1.0}'
>>> loadedjson = json.loads(data)
>>> loadedjson['Ammeter']
117.3575210571289

什么错误?哪里您是否验证了您使用的是Python 3.6或更早的版本?decodedjson=data.decode'utf-8'loadedjson=json.loadedCodedjson print loadedjson['Ammeter']有一个错误“Traceback last:loadedjson=json.loadedCodedjson File/usr/lib/python2.7/json/uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,在loads return _default_decoder.decodes File/usr/lib/python2.7/json/decoder.py中,第364行,在decode obj中,end=self.raw_decodes,idx=_ws,0.end File/usr/lib/python2.7/json/decoder.py,第382行,在raw_decode raise ValueError中,无法解码json对象ValueError:无法解码json对象’那么您正在使用python 2。如果没有合适的样品,我们就帮不了你。我们需要的不止一份印刷品output@RubinNederlof:换句话说:我们不知道数据是如何加载的,是否在循环中执行,等等。您在那里的特定数据值与您在此处发布的不同。也许其中有额外的数据,或者这个循环迭代产生了一个空的数据值。如果没有更多关于如何再现错误的上下文,我们将无法提供比目前为止所做的更多的帮助。数据正在由github项目发送,以从模拟游戏中读取数据:。此脚本正在接收数据:。我希望这是您需要的信息。什么错误?哪里您是否验证了您使用的是Python 3.6或更早的版本?decodedjson=data.decode'utf-8'loadedjson=json.loadedCodedjson print loadedjson['Ammeter']有一个错误“Traceback last:loadedjson=json.loadedCodedjson File/usr/lib/python2.7/json/uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,在loads return _default_decoder.decodes File/usr/lib/python2.7/json/decoder.py中,第364行,在decode obj中,end=self.raw_decodes,idx=_ws,0.end File/usr/lib/python2.7/json/decoder.py,第382行,在raw_decode raise ValueError中,无法解码json对象ValueError:无法解码json对象’那么您正在使用python 2。如果没有合适的样品,我们就帮不了你。我们需要的不止一份印刷品output@RubinNederlof:换句话说:我们不知道数据是如何加载的,是否在循环中执行,等等。您在那里的特定数据值与您在此处发布的不同。也许其中有额外的数据,或者这个循环迭代产生了一个空的数据值。如果没有更多关于如何再现错误的上下文,我们将无法提供比目前为止所做的更多的帮助。数据正在由github项目发送,以从模拟游戏中读取数据:。此脚本正在接收数据:。我希望这是你需要的信息。