相关疑难解决方法(0)

json.loads()没有保持秩序

我已将格式化我的字符串看起来像JSON我可以做到的json.loads.当我在屏幕上打印时,它结果搞砸了订单.我知道Python的dictonaries没有订购,但有没有办法保持这个顺序?我真的需要保留它.谢谢!

python json python-2.7

6
推荐指数
1
解决办法
5216
查看次数

如何从JSON中提取定期密钥?

我是python(和一般编码)的新手,我已经走到这一步但我遇到了麻烦.我正在查询一个返回json文件的Web服务,该文件包含每个员工的信息.我想为每位员工提供几个属性,但我遇到了一些麻烦.

到目前为止我有这个脚本:

import json
import urllib2

req = urllib2.Request('http://server.company.com/api')
response = urllib2.urlopen(req)
the_page = response.read()

j = json.loads(the_page)

print j[1]['name']
Run Code Online (Sandbox Code Playgroud)

它返回的JSON看起来像这样......

{
    "name": bill jones,
    "address": "123 something st",
    "city": "somewhere",
    "state": "somestate",
    "zip": "12345",
    "phone_number": "800-555-1234",
},
{
    "name": jane doe,
    "address": "456 another ave",
    "city": "metropolis",
    "state": "ny",
    "zip": "10001",
    "phone_number": "555-555-5554",
},
Run Code Online (Sandbox Code Playgroud)

您可以看到,通过脚本,我可以返回索引1中员工的姓名.但我希望有更多的内容:print j[**0 through len(j)**]['name']因此它将打印出每个员工的姓名(最好是电话号码) json列表.

我很确定我接近错了,但我需要一些反馈和指导.

python json dictionary urllib2 python-2.7

5
推荐指数
1
解决办法
91
查看次数

如何从python中的JSON文件中删除注释行

我正在获取具有以下格式的JSON文件:

// 20170407
// http://info.employeeportal.org

{
 "EmployeeDataList": [
{
 "EmployeeCode": "200005ABH9",
 "Skill": CT70,
 "Sales": 0.0,
 "LostSales": 1010.4
} 
 ]
} 
Run Code Online (Sandbox Code Playgroud)

需要删除文件中存在的多余注释行。

我尝试使用以下代码:

import json
import commentjson

with open('EmployeeDataList.json') as json_data:
            employee_data = json.load(json_data)
            '''employee_data = json.dump(json.load(json_data))'''
            '''employee_data = commentjson.load(json_data)'''
            print(employee_data)`
Run Code Online (Sandbox Code Playgroud)

仍然无法从文件中删除注释,并以正确的格式导入JSON文件。

无法到达哪里出了问题?在这方面的任何方向都受到高度赞赏。

python json

5
推荐指数
2
解决办法
3863
查看次数

有序字典的深度复制是否期望保留其顺序?

我编写了一个小程序并测试它确实保持了顺序。然而,我仍然想确保deepcopy能够做到这一点。

import copy
import collections

a_dict = collections.OrderedDict()
a_dict['m'] = 10
a_dict['u'] = 15
a_dict['c'] = 5
a_dict['h'] = 25
a_dict['a'] = 55
a_dict['s'] = 30

print(a_dict)

other_dict = copy.deepcopy(a_dict)

other_dict['g'] = 75
other_dict['r'] = 35

print(other_dict)
Run Code Online (Sandbox Code Playgroud)

该程序的输出是

OrderedDict([('m', 10), ('u', 15), ('c', 5), ('h', 25), ('a', 55), ('s', 30)])
OrderedDict([('m', 10), ('u', 15), ('c', 5), ('h', 25), ('a', 55), ('s', 30), ('g', 75), ('r', 35)])
Run Code Online (Sandbox Code Playgroud)

python ordereddictionary deep-copy

5
推荐指数
1
解决办法
5637
查看次数

字符串到python中的OrderedDict转换

我通过导入集合创建了一个python Ordered Dictionary并将其存储在名为'filename.txt'的文件中.文件内容看起来像

OrderedDict([(7, 0), (6, 1), (5, 2), (4, 3)])
Run Code Online (Sandbox Code Playgroud)

我需要从另一个程序中使用这个OrderedDict.我这样做

myfile = open('filename.txt','r')
mydict = myfile.read()
Run Code Online (Sandbox Code Playgroud)

我需要获得类型的'mydict'

<class 'collections.OrderedDict'>
Run Code Online (Sandbox Code Playgroud)

但在这里,它出现了'str'类型.
有没有办法在python中将字符串类型转换为OrderedDict类型?使用python 2.7

python string parsing ordereddictionary

3
推荐指数
2
解决办法
3879
查看次数

如何将json.loads作为列表而不是Python中的字典

我在使用python从文件中读取json时遇到问题.数据存储在未排序的字典中.我想将列表变量中的数据存储为正确的顺序.

flookup = open('lookup.json') 
self.tags = json.loads(flookup.read())        
flookup.close()
Run Code Online (Sandbox Code Playgroud)

self.tags包含未根据lookup.json文件排序的数据

{
  "JournalTitle": "Journal Title",
  "PubCode": "Pub Code",
  "UniqueDocumentID": "Unique Document ID"
}
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
795
查看次数

在Python中,如何通过删除括号和大括号来打印Json

我想以一种很好的方式打印Json,我想摆脱括号,引号和括号,只使用缩进和行结尾来显示json的结构.

例如,如果我有这样的Json:

    {
        "A": {
            "A1": 1,
            "A2": 2
        },
        "B": {
            "B1": {
                "B11": {
                    "B111": 1,
                    "B112": 2
                },
                "B12": {
                    "B121": 1,
                    "B122": 2
                }
            },
            "B2": {
                "B21": [1,2],
                "B22": [1,2]
            }
        },
        "C": "CC"
    }
Run Code Online (Sandbox Code Playgroud)

如何通过删除{}和[]来打印json,我想要的是:

A:
  A1: 1
  A2: 2
B:
  B1:
     B11:
         B111: 1
         B112: 2
     B12:
         B121: 1
         B122: 2
  B2:
     B21: 1, 2
     B22: 1, 2
C: CC
Run Code Online (Sandbox Code Playgroud)

python json dictionary

2
推荐指数
1
解决办法
1275
查看次数

Python - 更改 JSON 值和漂亮的打印

如何在任何节点(value1、value2、value3、value4、value5、value6、value7)中使用 Python 更改 JSON 中的值:

{
    "key1": "value1",
    "level2": {
        "key2": "value2",
        "key3": "value3",
        "level3": [
            {
                "key4": "value4",
                "level5": [
                    {
                        "key5": "value5",
                        "key6": "value6"
                    }
                ],
                "key7": "value7"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

在使用其他一些值更改例如 Value6 之后 - 我想以一种很好的打印格式(与上面相同)打印新的 JSON。

谢谢。

python json structure

1
推荐指数
1
解决办法
3656
查看次数

将OrderedDict转换为正常的dict保留顺序?

如何OrderedDict在保留相同顺序的同时将转换为普通字典?

我问这个的原因是因为当我从API获取数据时,我得到一个JSON字符串,我用它json.loads(str)来返回一个字典.返回的这个字典json.loads(...)只是乱序,随机排序.另外,我读过这个OrderedDict工作很慢,所以我想使用与原始JSON字符串相同顺序的常规字典.

稍微偏离主题:无论如何都要将JSON字符串转换为dict,json.loads(...)同时保持相同的顺序而不使用collections.OrderedDict

python string json dictionary ordereddictionary

0
推荐指数
1
解决办法
3041
查看次数

如何评估有序的dict py文件

我有一个名为example_dict.py的文件

#This is a valid comment
{
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3',
}
Run Code Online (Sandbox Code Playgroud)

然后我读了这个文件并转换dict:

from collections import OrderedDict
with open("example_dict.py") as fp:
    dict_from_file = OrderedDict( eval( fp.read() ) )
Run Code Online (Sandbox Code Playgroud)

但是这个"dict_from_file"没有相同的顺序key1,key2,key3.

我怎么能以同样的顺序得到这个字典.

python

0
推荐指数
2
解决办法
573
查看次数

Python csv 到 json 列顺序

基本的 Python csv to json 脚本在最终的 JSON 中混合了列顺序。知道为什么吗?

测试文件

animal,age,count,legs
dogs,3,5,4
cats,6,4,4
birds,2,1,2
Run Code Online (Sandbox Code Playgroud)

脚本

import csv
import json

csvfile = open('test.csv', 'r')
jsonfile = open('test.json', 'w')

reader = csv.DictReader( csvfile)

jsonfile.write('[')
for row in reader:
    json.dump(row, jsonfile)
    jsonfile.write(',\n')
jsonfile.write(']')
Run Code Online (Sandbox Code Playgroud)

测试文件

[{"count": "5", "age": "3", "legs": "4", "animal": "dogs"},
{"count": "4", "age": "6", "legs": "4", "animal": "cats"},
{"count": "1", "age": "2", "legs": "2", "animal": "birds"},
]
Run Code Online (Sandbox Code Playgroud)

python csv json

0
推荐指数
1
解决办法
2122
查看次数