【问题标题】:Trying to use a JSON object as a argument (Python)尝试使用 JSON 对象作为参数(Python)
【发布时间】:2015-04-02 17:16:30
【问题描述】:

我已经编写了一些将 JSON 对象转换为 iCalendar (.ics) 对象的代码,现在我正在尝试对其进行测试。问题是我不知道如何创建一个通用的 JSON 对象作为参数。我的一些尝试如下:

# 1
obj_json = u'sample json data in string form'
obj = json.loads(obj_json)

# 2
# I'm not sure about this very first line. My supervisor told me to put it in but he
# has a very heavy accent so I definitely could have heard him incorrectly.
input.json
with open('input.json') as f:
    obj = json.loads(f.read())

【问题讨论】:

  • 这两个都应该工作(除了第二个的第一行,除非你改变了内置的input 对象)。他们怎么了?
  • 我认为第一行一定是错误的。它说 input.json 不存在。我不确定我是否理解您所说的将其更改为。
  • IOError: [Errno 2] 没有这样的文件或目录:'input.json'
  • 好吧,如果你试图读取的文件不存在,显然它不会工作。
  • 我明白这一点,但我怎样才能基本上创建一个“虚拟”JSON 对象来测试这段代码??

标签: python json testing parameters arguments


【解决方案1】:

试试,

import json

some_dict = {'id': 0123, 'text': 'A dummy text'}

dummy_json = json.dumps(some_dict)

现在,将您的虚拟 json 提供给您的函数。即

'{"text": "A dummy text", "id": 83}'

您也可以使用字符串对象进行转储。

【讨论】:

    【解决方案2】:

    查看 pnv 的答案,但您可能不需要转储它。只需像 pnv 那样使用字典,然后将其传递给您需要的任何内容。除非您打算通过网络将您的 json 对象传递给某些东西,否则我不知道您为什么要转储它。

    我会将此添加为评论,但还没有代表。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多