#python #python-3.x
Вопрос:
Я извлекаю данные каждого пользователя в m4-$u.json
файл с помощью приведенного ниже сценария оболочки
#!/bin/bash
USERID=ricardo.sanchez
PASSWORD=password
PORT=2728
for u in `cat user-list.txt`;
do echo $u;
curl --user $USERID:$PASSWORD http://198.98.99.12:46567/$PORT/protects/$u | jq '.' > m4-$u.json
done
Один для выходного m4-daniel.json
файла пользователя. Из этих нескольких строк следует следующее.
[
{
"depotFile": "//ABND/JJEB/...",
"host": "*",
"isgroup": "",
"line": "16",
"perm": "open",
"user": "5G_USER_GROUP"
},
{
"depotFile": "//LIB/...",
"host": "*",
"isgroup": "",
"line": "19",
"perm": "write",
"user": "6G_USER_GROUP"
},
{
"depotFile": "//AND/RIO/...",
"host": "*",
"isgroup": "",
"line": "20",
"perm": "write",
"user": "AND_USER_GROUP"
},
Теперь из выходных файлов json мне нужно скрытое, чтобы получить его excel (or) csv
в формате ниже. Кроме $PORT
$U
того, в файле должны присутствовать переменные amp; оболочки excel (or) csv
. Любая помощь будет оценена по достоинству.
Ответ №1:
Смотрите ниже (создается csv-файл). Обратите внимание, что в данных нет $PORT и $U.
data = [
{
"depotFile": "//ABND/JJEB/...",
"host": "*",
"isgroup": "",
"line": "16",
"perm": "open",
"user": "5G_USER_GROUP"
},
{
"depotFile": "//LIB/...",
"host": "*",
"isgroup": "",
"line": "19",
"perm": "write",
"user": "6G_USER_GROUP"
},
{
"depotFile": "//AND/RIO/...",
"host": "*",
"isgroup": "",
"line": "20",
"perm": "write",
"user": "AND_USER_GROUP"
}
]
with open('out.csv', 'w') as f:
headers = list(data[0].keys())
f.write(','.join(headers) 'n')
for entry in data:
tmp = []
for field in headers:
tmp.append(entry[field])
f.write(','.join(tmp) 'n')
out.csv
depotFile,host,isgroup,line,perm,user
//ABND/JJEB/...,*,,16,open,5G_USER_GROUP
//LIB/...,*,,19,write,6G_USER_GROUP
//AND/RIO/...,*,,20,write,AND_USER_GROUP
Комментарии:
1. Вы пытались запустить мой код «как есть» и получили эту ошибку? Не вызывайте файл
csv
— это модуль на python. Позвони емуjson_to_csv.py
. Вам нужно изменить код и загрузить в него json, созданный сценарием оболочкиdata
.2. посмотрите, как вы загружаете файл json в список диктовок. видишь programiz.com/python-programming/json
3.добавлено ниже, в то время как покоя нет, не могли бы вы, пожалуйста, помочь мне с этим.
import json
import pandas as pd
with open('*.json') as json_file:
` данные = json.load(json_file)`df = pd.DataFrame(data)
4. нет необходимости в пандах. просто загрузите файл в список диктовок. смотрите пример по ссылке
5. Теперь вместо вывода в
txt
изменено наjson
ок попробуем по ссылке.