在python中写入csv文件时,无法保持行的相同顺序

  • 本文关键字:顺序 python csv 文件 python
  • 更新时间 :
  • 英文 :


我写了一个python代码,它将读取json文件并提取所有密钥,并检查这些密钥是否存在于txt文件中,如果存在密钥,则它将从json文件中获取相应密钥的值,然后将其写入CSV文件。我能够得到预期的结果,但在csv文件中,第一列中的键的顺序与txt文件不同。

以下是我的python代码

import json
import csv
def read_json_file(file1):
with open(file1, 'r') as fh:
data = json.load(fh)
for i,j in data.items():
with open("test.txt", 'r') as ft:
for line in ft:
if i in line:
yield i, j["a"], j["b"], j["c"], j["d"]

a=list(read_json_file("/home/user/Downloads/data.json"))
print(a)   
with open('data.csv','w') as out:
csv_out=csv.writer(out)
csv_out.writerow(['name','a','b','c','d']
for row in a:
csv_out.writerow(row)

以下是我的test.txt 的内容

苹果goa茶叶橙色bux

当输出写入csv文件时,第一列应遵循相同的上述顺序,然后是其他列中的相应值。相反,csv文件具有不同的顺序

我如何实现这个

从json文件中获取相应键的值,然后将被写入CSV文件。我能够得到预期的结果但在csv文件中,第一列中键的顺序不同而不是txt文件。

json(python标准库的一部分(确实实现了RFC 7519,它强制执行

对象是零个或多个名称/值对的无序集合,其中名称是字符串,值是字符串、数字、布尔值,null、对象或数组。

因此,当您加载JSON持有对象时,不能假设有任何特定的顺序,然后将其转换为pythondict

最新更新