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
使用python3更新json字符串列表时出错_Python_Json_Python 3.x - Fatal编程技术网

使用python3更新json字符串列表时出错

使用python3更新json字符串列表时出错,python,json,python-3.x,Python,Json,Python 3.x,在打印/存储另一个结果时,我试图插入另一个键:value数据列表。以下是我到目前为止所做的: >>> data = list() >>> data.append({'data':'a','name':'alpha'}) >>> data.append({'data':'b','name':'beta'}) >>> data.append({'data':'c','name':'charlie'}) >>>

在打印/存储另一个结果时,我试图插入另一个
键:value
数据列表。以下是我到目前为止所做的:

>>> data = list()
>>> data.append({'data':'a','name':'alpha'})
>>> data.append({'data':'b','name':'beta'})
>>> data.append({'data':'c','name':'charlie'})
>>> data
[{'data': 'a', 'name': 'alpha'}, {'data': 'b', 'name': 'beta'}, {'data': 'c', 'name': 'charlie'}]
>>> names = []
>>> count = 0
>>> for i in data:
...     names.append(data[count]['name'])
...     count = count + 1
...
>>> names
['alpha', 'beta', 'charlie']
>>> txt = 'alpha'
>>> res = process.extract(txt,names)
>>> res
[('alpha', 100), ('charlie', 33), ('beta', 22)]
>>> for name, score in res:
...     print(data[names.index(name)])
...
{'data': 'a', 'name': 'alpha'}
{'data': 'c', 'name': 'charlie'}
{'data': 'b', 'name': 'beta'}
>>> for name, score in res:
...     print(data[names.index(name)]['score'] = score)
...
  File "<stdin>", line 2
SyntaxError: keyword can't be an expression
在Python中,赋值(这里
data[names.index(name)]['score']=score
)是一条语句,因此不能在需要表达式的地方使用它。您必须先完成作业,然后打印结果(替换此项):

for name, score in res:
    print(data[names.index(name)]['score'] = score)
与:

作为旁注:

names = []
count = 0
for i in data:
    names.append(data[count]['name'])
    count = count + 1
是一种极其复杂的写作方式:

names = [item["name"] for item in data]
替换

for name, score in res:
    print(data[names.index(name)]['score'] = score)


尽管使用类可能是更好的方法。

您不能同时打印和分配。只需分配,稍后再打印结果。@Jean Françoisfare我这样试过
result=(data[names.index(name)]['score']=score)
仍然不起作用。请你给我分享一些可行的方法。请。
data[names.index(name)]['score']=score
分配。我得到了这个错误
>对于name,res中的score:。。。(数据[names.index(name)]['score']=score)文件“”,第2行(数据[names.index(name)]['score']=score)^SyntaxError:无效语法
现在我需要做的事情。作业不能放在括号中。删除它们。你应该解释为什么OP是错误的,而不仅仅是转储工作代码。事实上。。。完成。
names = [item["name"] for item in data]
for name, score in res:
    print(data[names.index(name)]['score'] = score)
for name, score in res:
    for d in data:
        if d['name']==name:
            d['score'] = score