在Python中,Append函数似乎不工作。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中,Append函数似乎不工作。相关的知识,希望对你有一定的参考价值。

我需要一个JSON文件的数组插入到一个DB中,因为bulk_doc(array_of_json)比Createdoc(json_doc)更有效,更快,我写了这段代码。

    with open('C:\DATA_VOTES_CST_PTY.csv', 'r') as f:
       key = f.readline().replace('\n', '').replace('\"', '').split(',')
       while (True) :
           line = f.readline()
           if (line == '') :
               break
           else :
               value = line.replace('\n', '').replace('\"', '').split(',')
           for i in range(len(key)):
               app.update(key[i] : value[i])
           json_doc = json.dumps(app)
           print(json_doc) #print what I want
                  docs.append(json_doc)
       print("\n", json_doc)
print("now print docs: ")
print(docs) #print nothing, neither errors

这个文档有1百万行。我不知道该怎么解决这个问题,好像append不起作用。

PS: 我在Spyder4 Anaconda上使用Python 3.8。

the output

答案

给定这个csv。

A,B,C
1,2,3
4,5,6
7,8,9

这段代码

import csv
import json

docs = []

with open('test.csv', newline='') as f:
    reader = csv.DictReader(f)
    for row in reader:
        docs.append(json.dumps(row))

print(docs)

产生这个输出

['"A": "1", "B": "2", "C": "3"', '"A": "4", "B": "5", "C": "6"', '"A": "7", "B": "8", "C": "9"']

如果你想要一个JSON数组,而不是JSON对象的列表,你可以做的是

docs = list(reader)
json_array = json.dumps(docs)

以上是关于在Python中,Append函数似乎不工作。的主要内容,如果未能解决你的问题,请参考以下文章

继续在这个简单的 Python 函数中似乎不起作用

lambda函数不关闭Python中的参数?

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

python:DataFrame.append 不附加元素

Python之在函数中使用列表作为默认参数

Python学习之路——基础07篇